From: zacharyshort AT hotmail DOT com (ZMAN) Newsgroups: comp.os.msdos.djgpp,comp.lang.c++,comp.lang.c Subject: DJGPP reserves wrong int size Date: 24 Jun 2001 11:53:48 -0700 Organization: http://groups.google.com/ Lines: 37 Message-ID: <9dde68b7.0106241053.2a385311@posting.google.com> NNTP-Posting-Host: 216.227.178.111 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Trace: posting.google.com 993408828 30556 127.0.0.1 (24 Jun 2001 18:53:48 GMT) X-Complaints-To: groups-support AT google DOT com NNTP-Posting-Date: 24 Jun 2001 18:53:48 GMT To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Please consider the following code: int main () { int i; i = 0x12345678; } -Yes I am aware there is no return statement even if I do have it in there it still messes up. When I compile this code using: gcc -c test.c ld -o test -Ttext 0x0 -e main test.o objcopy -R .note -R .comment -S -O binary test test.bin and disassemble it I get the following: 00000000 55 push ebp 00000001 89E5 mov ebp,esp 00000003 83EC04 sub esp,byte +0x18 00000006 C745FC78563412 mov dword [ebp-0x4],0x12345678 0000000D C9 leave 0000000E C3 ret The third line reserves 18 bytes. And it should reserve 4 bytes because thats the size of an int right? If you declare a char it still reserves 18 bytes. Could someone tell me what's going on? I am loosing my mind! Line 4 is correct though. I am compiling this on Windows 98 and ME boxes and still get the same results. The gcc version number is 2.953 binutills is version 2.11 thanks for any help