int not() { int i, j = 3; i = !!j; } int ques() { int i, j = 3; i = j?1:0; } int main() { not(); ques(); } assembly: (gdb) disas not Dump of assembler code for function not: 0x08048348 : push %ebp 0x08048349 : mov %esp,%ebp 0x0804834b : sub $0x10,%esp 0x0804834e : movl $0x3,0xfffffffc(%ebp) 0x08048355 : cmpl $0x0,0xfffffffc(%ebp) 0x08048359 : setne %al 0x0804835c : movzbl %al,%eax 0x0804835f : mov %eax,0xfffffff8(%ebp) 0x08048362 : leave 0x08048363 : ret End of assembler dump. (gdb) disas ques Dump of assembler code for function ques: 0x08048364 : push %ebp 0x08048365 : mov %esp,%ebp 0x08048367 : sub $0x10,%esp 0x0804836a : movl $0x3,0xfffffffc(%ebp) 0x08048371 : cmpl $0x0,0xfffffffc(%ebp) 0x08048375 : setne %al 0x08048378 : movzbl %al,%eax 0x0804837b : mov %eax,0xfffffff8(%ebp) 0x0804837e : leave 0x0804837f : ret End of assembler dump.