Есть ли разница в VOID и void, в c ++?

Я читал некоторые другие вопросы, похожие на это, но я до сих пор не знаю, если
Существует разница в использовании между «VOID» и «void».

Мне неудобно использовать VOID, не зная точной разницы с void.

Любой утешительный совет очень ценится.

1

Решение

void ключевое слово зарезервировано языком, но VOID не является. Это определяется в «winnt.h» следующим образом:

#ifndef VOID
#define VOID void

Таким образом, они по сути одинаковы и могут использоваться взаимозаменяемо. Иногда один используется вместо другого ради конвенций, но не имеет значения, какой вы используете. Препроцессор в итоге заменит VOID с void в любом случае в вашем коде, потому что это то, что #define делает.

На самом деле многие ключевые слова «typedefed» в Windows к своей столице. Я думаю, что это просто для обеспечения совместимости между 8-битной, 16-битной и 32-битной Windows. Почему они сделали это с void хотя … Это просто странная Windows. (Насколько я знаю)

5

Другие решения

Разница в том, что void является частью языка и VOID не является. Если вы посмотрите на вывод препроцессора для одного из ваших исходных файлов, содержащих VOID, вы должны быть в состоянии найти строку, которая содержит строку что-то вроде:

typedef void VOID;

Что должно заставить вас чувствовать себя лучше.

Изменить: я вижу из вашего комментария выше, что есть #define VOID void линия. В этом случае вы знаете, что они одинаковы, но вы, вероятно, не увидите VOID на выходе препроцессора. Что ты будут видите, это везде в вашем коде, который вы использовали VOID, предварительно обработанный вывод будет иметь void вместо.

3

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector