История изменений
Исправление bga_, (текущая версия) :
Весь SO забит этим вопросом
https://stackoverflow.com/questions/53887316/how-do-i-print-a-constant-value-... вот например. В основном делают неимплементированный шаблон PrintMe<вычисляемая_константа> и gcc ругается на PrintMe<123>. Или спавнять ворнинг так чтобы gcc вывел число. Был фокус со struct { int v:-positiveConst } что даст ошибку со значением константы
Вот еще норм вариант для си https://stackoverflow.com/a/35261673
>>> cat aa.c
enum { constExpr = 12 * 23 };
int main() {
char (*__kaboom)[constExpr] = 1;
void kaboom_print( void ) {
printf("%d", __kaboom);
}
kaboom_print();
return 0;
}
>>> gcc -Wformat aa.c
...
aa.c:9:12: warning: format '%d' expects argument of type 'int', but argument 2 has type 'char (*)[276]' [-Wformat=]
printf("%d", __kaboom);
>>> gcc --version
gcc (GCC) 6.3.0
>>> iccstm8 aa.c
...
"R:\p\static_print\aa.c",7 Error[Pe144]: a value of type "int" cannot be used
to initialize an entity of type "char (*)[276]"
Исправление bga_, :
Весь SO забит этим вопросом
https://stackoverflow.com/questions/53887316/how-do-i-print-a-constant-value-... вот например. В основном делают неимплементированный шаблон PrintMe<вычисляемая_константа> и gcc ругается на PrintMe<123>. Или спавнять ворнинг так чтобы gcc вывел число. Был фокус со struct { int v:-positiveConst } что даст ошибку со значением константы
Вот еще норм вариант для си https://stackoverflow.com/a/35261673
>>> cat aa.c
enum { constExpr = 12 * 23 };
int main() {
char (*__kaboom)[constExpr] = 1;
void kaboom_print( void ) {
printf("%d", __kaboom);
}
kaboom_print();
return 0;
}
>>> gcc -Wformat aa.c
...
aa.c:9:12: warning: format '%d' expects argument of type 'int', but argument 2 has type 'char (*)[276]' [-Wformat=]
printf("%d", __kaboom);
>>> gcc --version
gcc (GCC) 6.3.0
Исправление bga_, :
Весь SO забит этим вопросом
https://stackoverflow.com/questions/53887316/how-do-i-print-a-constant-value-... вот например. В основном делают неимплементированный шаблон PrintMe<вычисляемая_константа> и gcc ругается на PrintMe<123>. Или спавнять ворнинг так чтобы gcc вывел число. Был фокус со struct { int v:-positiveConst } что даст ошибку со значением константы
Вот еще норм вариант для си https://stackoverflow.com/a/35261673
Исходная версия bga_, :
Весь SO забит этим вопросом
https://stackoverflow.com/questions/53887316/how-do-i-print-a-constant-value-... вот например. В основном делают неимплементированный шаблон PrintMe<вычисляемая_константа> и gcc ругается на PrintMe<123>. Или спавнять ворнинг так чтобы gcc вывел число. Был фокус со struct { int v:-positiveConst } что даст ошибку со значением константы