unsigned long adder( unsigned short _a, unsigned short _b ) { int i; unsigned long a = _a; unsigned long b = _b; unsigned long ha; for ( i = 0; i < sizeof ( unsigned short ) * 8; i ++ ) { ha = (~a & b) | (a & ~b);//inv exor(half adder) b = ( a & b ) << 1;//carry a = ha; } return a; }
gdb で調べると #0 0x400c3aef in _IO_adjust_column () from /lib/libc.so.6 #1 0x400c3bed in _IO_flush_all () from /lib/libc.so.6 #2 0x400c3da1 in _flushlbf () from /lib/libc.so.6 #3 0x40083ed4 in exit () from /lib/libc.so.6 #4 0x0804ac46 in main (ac=1, av=0xbffffbd4) at main.c:43 #5 0x4007117f in __libc_start_main () from /lib/libc.so.6 ライブラリの問題なんでしょうか..