2014-02-24 225 views
0

我米目前正在籌備一個3C認證,在與指針NULL課程材料,還有這條線界河麻煩我:包括標準輸入輸出和stddef

如果你想使用你必須 零符號

包括以下頭文件之一: stdio.h stddef.h。 NULL符號在那裏定義。

(粗體是源)

由於or強調,我把它讀作「永不包括」。這是一種真正的規範還是僅僅是課程材料中(許多)缺陷之一?

+2

也許他們想強調它是或者不是xor;) –

+1

按照慣例,OR是包容性的,所以你應該把「A或B」看作「A或B,或者A和B」。 – michaelmeyer

回答

0

您可以包含一個或兩個。首先寫入的將聲明NULL作爲第一個,它不會被聲明兩次。

2

由於stdio.h包含stddef.h,所以包含兩者都是無用的。但是如果你願意的話,你可以包括這兩個,因爲有一個警衛來避免多重包含。

1

要定義NULL的官方位置在<stddef.h>。但是,在大多數實現中,您可以包含<stdio.h><string.h>(或其他一些包含的內容)來提取它們。

將兩者都包括在內是非常安全的,如果你真的需要它們,你應該這麼做(反之,如果你不需要,你不應該包括<stdio.h>)。

相關問題