Использование слова main в качестве идентификатора - PullRequest
7 голосов
/ 26 марта 2011

Можем ли мы использовать main в качестве идентификатора?

Если да, какие могут быть сценарии?

Ответы [ 3 ]

5 голосов
/ 26 марта 2011

Почему бы и нет, при условии, что вы не используете его так, как используется main(), то есть как функция.

/* Error -- > */ int main() { return 1; } // Redefinition of main()

struct main{}; // ok

int main = 0 ; // error

int main(void) 
{       
    int main=0; // But has to be local.
    goto main;
    printf("Hello");
    main:
    printf("World");
} 

Помните, main является NOT ключевым словом.Но, думаю, у нас не осталось слов, так зачем это использовать?

4 голосов
/ 26 марта 2011

Технически?В качестве static или auto имени переменной внутри любой функции или в качестве static переменной области файла в любом файле, кроме того, который содержит main().Он также может работать как тег struct или union или как typedef в любом месте, кроме файла, содержащего main().

Практически?Это хороший способ запутаться, когда вы вернетесь в программу год спустя и задаетесь вопросом, что идиот подумал , что - хорошая идея.:)

2 голосов
/ 26 марта 2011

Хорошо, ребята, вот вопрос за 64 000 долларов: почему вы бы хотели это сделать?Возможно, планируете принять участие в конкурсе «Сфокусированный С»?Какой-то уникальный подход к написанию квин?Тестовый пример для lint-like программы?Это, конечно, не то, что вы хотели бы сделать в реальной программе.

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