2014-02-24 3 views
0

я м в настоящее время готовится к сертификации C, в материале курса, связанных с указателем NULL, то это whch неприятности линия мне:В том числе STDIO и stddef

, если вы хотите использовать символ NULL, вы должны включают один из следующих файлов заголовков: stdio.h или stddef.h. Символ NULL определен там.

(Жирный в источнике)

С or Подчеркивается, я прочитал его как «никогда не включают в себя как». Является ли это реальной нормой или это всего лишь один из (многих) недостатков в материале курса?

+2

Возможно, они хотели подчеркнуть, что это or или no 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>, если вам это не нужно).

Смежные вопросы