编译器 如何识别源程序是c或c++

如题所述

源代码是由字符组成的吧?
明白这一点就好办了
编译器首先将你写的代码读入内存,然后寻找代码中的关键字、标识符等信息,建立一个所谓的符号表,根据这个符号表对你的源代码进行检查,检查的依据正是该语言的语法和句法规则。比如是否有变量重复定义错误、是否有类型不兼容错误,是否有遗漏语句分隔符错误等等。这些都是比较简单的,例如根据语言的关键字表可以检查是否有非法的关键字(语句分隔符之后的下一个有效字符一定是一个关键字或已定义的标识符,因此很容易识别并挑出其中的关键字进行检查),其它检查也是类似的。
检查没有问题后,编译器开始链接和映射操作(该过程在检查阶段也有使用),将你的源程序翻译成汇编程序或其它中间程序。这一步是最复杂的,因为句法和语法比较简单,但整个程序的逻辑却复杂的多,而且编译器还要负责在不改变代码原意的前提下将代码尽可能地进行优化。
最后就是将生成的汇编代码翻译为机器语言,这一步是最简单的,因为汇编只是将机器语言简单符号化而已,现在的编译理论已经能够确保将汇编代码准确地翻译为机器码了。
以上。
另外,站长团上有产品团购,便宜有保证
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-04
1楼是正确的,按照扩展名识别。
Windows中.c为C程序,.cpp为C++程序
Unix/Linux中.c为C程序,.cpp或.C为C++程序
不要信2楼的
第2个回答  2011-07-04
一楼不对

主要看函数 调用头文件

其实也不必分得那么清

c 和 c++ 可以混编的
第3个回答  2011-07-04
扩展名 .c 和 .cpp的差别本回答被提问者采纳
第4个回答  2011-07-05
extern
相似回答