Разница между константной переменной и константной переменной - PullRequest
2 голосов
/ 13 июля 2010

В чем разница между:

const variable = 10;

и

const int variable = 10;

Может ли переменная, согласно стандарту, интерпретироваться как целочисленный тип, когда тип не определен?

Ответы [ 4 ]

8 голосов
/ 13 июля 2010

const variable = 10 не является допустимым C ++, в то время как const int variable = 10; является.

Единственный раз (я могу думать), что const variable = 10 будет действительным, если у вас есть тип с именем variableи у вас была функция с неназванным параметром этого типа, принимающая аргумент по умолчанию:

typedef int variable;
void foo(const variable = 10);
2 голосов
/ 13 июля 2010

Это означает, что x неявно объявлен как int.Это не разрешено в C ++, но в C и для обеспечения совместимости с заголовками C или кодом C ++, предшествующим ISO, многие современные компиляторы C ++ по-прежнему поддерживают это как опцию.

Мой компилятор GCC 4.4 здесьГрокс "const x = 3;"при подаче -fms-extensions в командной строке (в руководстве написано, что он включает пару лампочек, необходимых для понимания кода MFC)

ОБНОВЛЕНИЕ: я проверил это с VS-2005, выможет иметь неявное int, если вы используете

#pragma warning(disable:4430)
1 голос
/ 13 июля 2010
const variable = 10;

не будет компилироваться почти во всех новых современных компиляторах C ++.

0 голосов
/ 13 июля 2010

Без строгих правил (K & R C и т. Д. Edit: то есть old C), int является типом по умолчанию. Это, конечно, не означает, что переменная не имеет типа, и она не имеет ничего общего с const.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...