สวัสดี ฉันต้องการเสนอความท้าทายอื่นสำหรับคุณในส่วนโอเปอเรเตอร์นี้
ส่วนใหญ่ฉันต้องการสาธิตการใช้ตัวดำเนินการ sizeof
เรามาเริ่มอธิบายข้อกำหนดกันก่อน
ในความท้าทายนี้ ฉันต้องการให้คุณสร้างโปรแกรม c ที่แสดงขนาดไบต์ของประเภทข้อมูลพื้นฐานที่รองรับใน
c
เหตุผลที่ความท้าทายนี้ค่อนข้างเจ๋งเพราะฉันพูดไปเรื่อย ๆ แต่บางทีมันอาจไม่ได้ติดอยู่ในหัวของคุณว่าขึ้นอยู่กับระบบจริงที่คุณใช้งานอยู่
ไม่ว่าจะเป็นระบบปฏิบัติการที่แตกต่างกันหรือฮาร์ดแวร์สถาปัตยกรรมที่แตกต่างกัน
คุณอาจมีความแตกต่างกัน ขนาดหน่วยความจำสำหรับประเภทข้อมูลต่างๆ
Int อาจเป็น 4 int อาจเป็น 8
เพิ่มเป็นสองเท่าอาจจะ 8 หรือ 16 หรืออะไรก็แล้วแต่
และมันสำคัญมากที่จะต้องเข้าใจว่า
และถ้าคุณเริ่มฮาร์ดโค้ดตัวเลข มันจะสร้างปัญหาให้กับโปรแกรมของคุณ
ดังนั้นคุณต้องการใช้ตัวดำเนินการ sizeof
ตอนนี้คุณไม่จำเป็นต้องกังวลว่าโปรแกรมของคุณกำลังทำงานอยู่บนระบบใดระบบหนึ่ง
มันจะทำงานเหมือนเดิมเสมอ
ความท้าทายนี้แสดงให้เห็นว่ามันบังคับให้คุณใช้ sizeof
ตอนนี้เรากำลังจะใช้ตัวดำเนินการ sizeof มากขึ้นเมื่อเราพูดถึงพอยน์เตอร์
แต่สิ่งนี้จะทำให้คุณมีความท้าทายเล็กน้อยที่จะทำให้มือของคุณสกปรกเล็กน้อยกับโอเปอเรเตอร์นี้และทำให้คุณคุ้นเคยกับตัวระบุรูปแบบที่เกี่ยวข้องมากขึ้น
ให้กับโอเปอเรเตอร์นี้
ดังนั้น อีกครั้ง ขึ้นอยู่กับระบบที่คุณกำลังเรียกใช้ ผลลัพธ์อาจแตกต่างกันสำหรับโปรแกรมนี้
แต่คุณต้องเขียนโปรแกรมที่แสดงขนาดข้อมูลพื้นฐานบางขนาด
มันค่อนข้างง่าย ไม่ควรใช้เวลานานขนาดนั้น
แต่สิ่งที่ฉันต้องการให้คุณทำคือใช้ฟังก์ชัน printf เพื่อแสดงขนาดไบต์ของประเภทต่อไปนี้
Int, ถ่าน, ยาว, ยาวยาว, สองเท่า, ยาวสองเท่า
และประโยชน์ของโปรแกรมนี้ก็คือการเรียกใช้บนคอมพิวเตอร์จริงหลายๆ
เครื่องเพื่อดูความแตกต่าง แต่เมื่อคุณพิมพ์ข้อมูลนี้ออกมา
คุณสามารถใช้รูปแบบเปอร์เซ็นต์ zd ที่รองรับใน C99 ได้ ดังนั้นคุณน่าจะทำได้ดี
แต่ตัวระบุรูปแบบนี้จะช่วยจัดรูปแบบแต่ละขนาดและพิมพ์ออกมาอย่างถูกต้อง
นอกจากนั้น ฟังก์ชันนี้หรือโปรแกรมนี้เป็นเพียงการใช้ตัวดำเนินการ
sizeof และแสดงให้เห็นว่าขนาดแตกต่างจากหน่วยความจำสำหรับประเภทข้อมูลที่แตกต่างกันอย่างไร
อีกครั้ง กุญแจสำคัญคือการทดสอบสิ่งนี้บนคอมพิวเตอร์มากกว่าหนึ่งเครื่องเพื่อดูความแตกต่าง
แต่โปรแกรมนี้ไม่ควรใช้เวลานานขนาดนั้น
คุณไม่จำเป็นต้องสร้างตัวแปรด้วยซ้ำถ้าคุณฉลาด คุณสามารถใช้คำสั่ง printf ได้เองและเห็นว่านี่เป็นข้อมูลเพิ่มเติมสำหรับความรู้ของคุณเกี่ยวกับตัวดำเนินการ
sizeof
นอกเหนือจากความท้าทายเหล่านี้แล้ว ยังมีความท้าทายอีกมากมายในการใช้โอเปอเรเตอร์ในการแปลงประเภทต่างๆ
สามารถมีได้ทุกประเภทของการแปลง
ฉันพูดถึงฟาเรนไฮต์เป็นเซลเซียส แต่คุณสามารถสร้างการแปลงสำหรับการแปลงชุดข้อมูลประเภทใดก็ได้หรือเพียงแค่เข้าไปในหนังสือคณิตศาสตร์ของคุณและค้นหาสมการต่างๆ
และลองเขียนโปรแกรม ซึ่งจะช่วยให้คุณคุ้นเคยกับบางส่วน
โอเปอเรเตอร์ต่าง ๆ ใน c และวิธีรองรับ วิธีใช้งาน
แต่ขอให้โชคดีกับเรื่องนี้ อีกครั้งไม่ควรใช้เวลานาน
ฉันจะให้วิธีแก้ปัญหาอย่างรวดเร็วในการบรรยายครั้งต่อไป แสดงวิธีการทำสิ่งนี้ แต่ค่อนข้างตรงไปตรงมา
เพียงแค่ใช้ตัวดำเนินการ sizeof ขอขอบคุณ.