今天被个c程序搞得头晕,最后发现施低级错误,都怪几年“面向对象”了,把C的老本都忘了。
总结错误如下:
c语言和c++是不一样的,在c编程中必须将在该函数/过程可能用到的所有变量和常量定义在函数/过程的开始部分,因为c语言对内存地址的划分用的是DOS下的段划分,而不是现在的段页方式,c首先在内存中开辟数据段,然后紧接着就开辟代码段。
比如: #include <stdio.h> void main() { int a=10; printf("%d/n",a); int b=8; printf("%d/n",b); } 在TC2.0下会有错.要把b的声明放在前面. #include <stdio.h> void main() { int a=10; int b=8; printf("%d/n",a); printf("%d/n",b); } |