Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

สิ่งที่เขียนใน sizeof() จะไม่ถูก.execute ใน C

sizeof เป็นออพอเรเตอร์ (ไม่ใช่ฟังก์ชัน) ใช้คำนวณขนาดของอาร์กิวเมนต์ หากใส่ฟังก์ชันอื่นเข้าไปเป็นอาร์กิวเมนต์ ฟังก์ชันนั้นจะ ไม่ถูกเรียกใช้งาน เพียงแค่นำชนิดค่าที่คืนมา (return type) ไปคำนวณขนาดเท่านั้น

ตัวอย่าง

#include <stdio.h>

double my_function() {
    printf("This is a test function");
    return 123456789;
}

int main() {
    int x;
    x = sizeof(printf("Hello World"));  // printf ไม่ทำงาน
    printf("The size: %d\n", x);
    x = sizeof(my_function());         // my_function ไม่ทำงาน
    printf("The size: %d", x);
    return 0;
}

ผลลัพธ์

The size: 4
The size: 8

ข้อความ "Hello World" และ "This is a test function" ไม่ได้ถูกพิมพ์ออกมา เพราะ sizeof ไม่ได้ evaluate นิพจน์ภายใน