100分求解简单C语言题,该如何处理

100分求解简单C语言题
1)为什么net只创建一个空窗体就占用10M内存呢?那其他软件,为什么只占那么少的内存呢?他们怎么实现的呢?

2)include   命令包含头文件时,会不会因为包含的头文件过多,而导致程序编译后占用更多空间?

3)
#include   <stdio.h>

int   main(void)
{
//为什么结果为-2147483648,   会的人讲解下原理
printf( "%d ",   2   < <   30);

return   0;
}

4)编一函数用来实现左右循环移位.   move(value,   n),   n   <   0表示为左移,   n   >   0为右移,   要能在VC6编译通过

------解决方案--------------------
应该是:
3)
2: 0x00000002
左移30位后
0x10000000
就是-2147483648

------解决方案--------------------
int move(int value, int n)
{
if (n> =0)
{
return value> > n | value < <(sizeof(int)*8 - n);
}
else
{
return value < <(-n) | value> > (sizeof(int)*8 -(-n));
}
}
------解决方案--------------------
1) believefym(feng)
2) 会。但是没有想像那么多,只是在链接时将用到的调用或数据编进。
3) 左移后,2的31次方刚好导致其最高位(符号位)为1,即-2147483648。
4) believefym(feng)
------解决方案--------------------
不会因为包含的文件多而使目标代码过长,因为#命令是在预处理是进行的。