我米目前正在筹备一个3C认证,在与指针NULL课程材料,还有这条线界河麻烦我:包括标准输入输出和stddef
如果你想使用你必须 零符号包括以下头文件之一: stdio.h 或 stddef.h。 NULL符号在那里定义。
(粗体是源)
由于or
强调,我把它读作“永不包括”。这是一种真正的规范还是仅仅是课程材料中(许多)缺陷之一?
我米目前正在筹备一个3C认证,在与指针NULL课程材料,还有这条线界河麻烦我:包括标准输入输出和stddef
如果你想使用你必须 零符号包括以下头文件之一: stdio.h 或 stddef.h。 NULL符号在那里定义。
(粗体是源)
由于or
强调,我把它读作“永不包括”。这是一种真正的规范还是仅仅是课程材料中(许多)缺陷之一?
您可以包含一个或两个。首先写入的将声明NULL作为第一个,它不会被声明两次。
由于stdio.h
包含stddef.h
,所以包含两者都是无用的。但是如果你愿意的话,你可以包括这两个,因为有一个警卫来避免多重包含。
要定义NULL的官方位置在<stddef.h>
。但是,在大多数实现中,您可以包含<stdio.h>
或<string.h>
(或其他一些包含的内容)来提取它们。
将两者都包括在内是非常安全的,如果你真的需要它们,你应该这么做(反之,如果你不需要,你不应该包括<stdio.h>
)。
也许他们想强调它是或者不是xor;) –
按照惯例,OR是包容性的,所以你应该把“A或B”看作“A或B,或者A和B”。 – michaelmeyer