Недавно обнаружил, что assert() можно вставлять перед объявлением переменных. Это существенно упрощает жизнь, и я стал активно этим пользоваться. Но я не понимаю, почему это работает.
#include
int main()
{
assert(0);
int N = 0;
return N;
}
Код успешно транслируется командой gcc -Wall -Wextra main.c.
Результат обработки
(
Read more... )
Comments 7
или сразу -pedantic.
Reply
Мягко говоря, я очень удивлен.
С каких это пор в C разрешено declaration after a statement in a block?
Reply
ISO C99 and ISO C++ allow declarations and code to be freely mixed within compound statements.
Начиная с какой-то версии GCC: As an extension, GCC also allows this in C90 mode.
Reply
Reply
Leave a comment