Tôi có đoạn mã này trong C:Tại sao biểu mẫu này đúng trong C?
void f(void *x) {
printf(">>> %p\n", x);
}
int main() {
f NULL;
return 0;
}
tôi nghĩ là cho định nghĩa của NULL, nhưng tôi muốn một lời giải thích để làm rõ nghi ngờ của tôi.
chính xác bạn không thích gì ở đây? –
iirc NULL là một # define'd đến ((void *) 0), vì vậy khi nó được sao chép trong bạn có f ((void *) 0) hoạt động như một tham số cho hàm – Daboyzuk
là lần đầu tiên tôi thấy điều này loại biểu mẫu 'f NULL'. – Kyrol