LINUX.ORG.RU

История изменений

Исправление KennyMinigun, (текущая версия) :

То есть надо использовать int для буля? О_О

ЕМНИП, в x86 нет стековых операций (т.е. pop) для байта. По этому (казалось бы) байтовый аргумент на стеке апгрейдится аж до целого слова (int для x86). Хотя, стоит проверить, а под рукой компилятора нет.

Посмотри у себя выхлоп от gcc -O0 -S от такого кода:

void func(char flag) {
    char inner = flag; // чтоб посмотреть откуда возьмется значение
}

void main() { func(1); }

Исходная версия KennyMinigun, :

То есть надо использовать int для буля? О_О

ЕМНИП, в x86 нет стековых операций (т.е. pop) для байта. По этому (казалось бы) байтовый аргумент на стеке апгрейдится аж до целого слова (int для x86). Хотя, стоит проверить, а под рукой компилятора нет.

Посмотри у себя выхлоп от gcc -O0 -S от такого кода:

void func(char flag) {}

void main() { func(1); }