Можно ли использовать аттрибуты в параметрах main?

Можно ли использовать аттрибуты в параметрах функции main?

В стандарте указаны только 2 возможные формы без аттрибутов, но дело в том что у меня в программе не используется argc параметр и я хотел бы пометить его как maybe_unused, чтобы не выдавало предупреждения постоянно:

int main([[maybe_unused]] int argc, char* argv[]);

Ошибок код не выдает, но легально ли так делать?


Ответы (1 шт):

Автор решения: gbg

Эти атрибуты - это отключение соответствующих warning у компилятора, они не влияют на итоговый код.

Следовательно, в свете их применения, нет разницы, в каком месте их применять.

Альтернативно, можно убрать у параметра имя. Это как раз явно - нет имени, значит, и пользоваться нельзя. Понадобится воспользоваться - вернете имя на место.

 int main(int, char*[]);
→ Ссылка