‘壹’ c++源文件 不同后缀(.cc .cpp .C .cp)的区别
VC里用cpp作后缀名, 在GCC里默认采用C、cc、cxx作为后缀名
.cpp, .h (VS file)
.cc, .h (GCC file)
C中:
头文件后缀名: .h
源文件后缀名: .c
C++中:
头文件后缀名: .h, .hpp, .hxx
源文件后缀名:.cpp, .cc, .cxx, .C .c++
这是现在不同标准下给出的扩展名:
Unix: C, cc, cxx, c
GNU C++: C, cc, cxx, cpp, c++
Digital Mars: cpp, cxx
Borland: C++ cpp
Watcom: cpp
Microsoft Visual C++: cpp, cxx, cc
Metrowerks CodeWarrior: cpp, cp, cc, cxx, c++
这些东西其实就是个标注,给人看的,叫什么无所谓,只要能看出和c有关但也有别就行
我大胆YY一下:
c++就是直接用语言的名字命名的扩展名,cpp也类似(C Plus Plus)
但有些系统可能不支持在文件名里放入加号"+"
所以有用x代替+(你不觉得x很像斜倒下来的加号么……),于是有了cxx
而C和cc则是代表这是c的“加大”或“加强”版
当然,C这个扩展名在Win系统下用显然不合适,因为Win是大小写不敏感系统
对Win来说"test.c"和"TEST.C"是完全相同的文件名
但在Linux/Unix平台上就不同了
GCC 中以 .s为后缀的文件,是汇编语言源代码文件
-----------------------------------------------------
GCC文件后缀名:
.c为后缀的文件,C语言源代码文件;
.a为后缀的文件,是由目标文件构成的档案库文件;
.C,.cc或.cxx 为后缀的文件,是C++源代码文件;
.h为后缀的文件,是程序所包含的头文件;
.i 为后缀的文件,是已经预处理过的C源代码文件;
.ii为后缀的文件,是已经预处理过的C++源代码文件;
.m为后缀的文件,是Objective-C源代码文件;
.o为后缀的文件,是编译后的目标文件;
.s为后缀的文件,是汇编语言源代码文件;
.S为后缀的文件,是经过预编译的汇编语言源代码文件。
‘贰’ c璇瑷缁忚繃缂栬疟钖庣敓鎴愭枃浠剁殑钖庣紑鏄
C璇瑷缁忚繃缂栬疟钖庣敓鎴愭枃浠剁殑钖庣紑鏄钬.obj钬濄
褰揅璇瑷婧愪唬镰佽缂栬疟钖庯纴阃氩父浼氱敓鎴愪竴涓钬.o钬濓纸object file锛夋枃浠躲傝繖涓鏂囦欢鍖呭惈浜嗙紪璇戝櫒镓浜х敓镄勬満鍣ㄤ唬镰侊纴浣嗘槸瀹冭缮娌℃湁琚杩炴帴鍒板叾浠栨ā鍧楁垨搴扑腑銆傜浉搴斿湴锛屽湪涓嶅悓镄勬搷浣灭郴缁熶笂鍙鑳戒细链変笉钖岀殑钖庣紑钖嶅拰浜岃繘鍒舵牸寮忋备緥濡傦纴Windows涓婄殑Visual C++缂栬疟鍣ㄤ娇鐢ㄢ.obj钬濅綔涓虹洰镙囨枃浠剁殑镓╁𪾢钖嶃
闄や简鐩镙囨枃浠朵箣澶栵纴杩樻湁鍏朵粬绫诲瀷镄勬枃浠朵篃鍙鑳藉湪缂栬疟杩囩▼涓鍑虹幇銆备緥濡傦纴婧愭枃浠跺寘钖浜嗕唬镰佺殑铡熷嬫枃链锛涘ご鏂囦欢鍖呭惈浜嗙▼搴忎腑浣跨敤鍒扮殑鍑芥暟鍜屽彉閲忕殑澹版槑銆傝繖浜涙枃浠舵墿灞曞悕阃氩父涓衡.c钬濆拰钬.h钬濄
C璇瑷镄勪紭镣圭亩杩
C璇瑷镄勮捐$洰镙囨槸鎻愪緵涓绉嶈兘浠ョ亩鏄撶殑鏂瑰纺缂栬疟銆佸勭悊浣庣骇瀛桦偍鍣ㄣ佷粎浜х敓灏戦噺镄勬満鍣ㄧ爜浠ュ强涓嶉渶瑕佷换浣曡繍琛岀幆澧冩敮鎸佷究鑳借繍琛岀殑缂栫▼璇瑷銆侰璇瑷鎻忚堪闂棰樻瘆姹囩紪璇瑷杩呴熴佸伐浣滈噺灏忋佸彲璇绘уソ銆佹槗浜庤皟璇曘佷慨鏀瑰拰绉绘嶏纴钥屼唬镰佽川閲忎笌姹囩紪璇瑷鐩稿綋銆侰璇瑷涓鑸鍙姣旀眹缂栬瑷浠g爜鐢熸垚镄勭洰镙囩▼搴忔晥鐜囦绠10%钬20%銆傚洜姝わ纴C璇瑷鍙浠ョ紪鍐欑郴缁熻蒋浠躲
褰揿墠阒舵碉纴鍦ㄧ紪绋嬮嗗烟涓锛孋璇瑷镄勮繍鐢ㄩ潪甯镐箣澶氾纴瀹冨吋椤句简楂樼骇璇瑷鍜屾眹缂栬瑷镄勪紭镣癸纴鐩歌缉浜庡叾浠栫紪绋嬭瑷鍏锋湁杈冨ぇ浼桦娍銆傝$畻链虹郴缁熻捐′互鍙婂簲鐢ㄧ▼搴忕紪鍐欐槸C璇瑷搴旂敤镄勪袱澶ч嗗烟銆傚悓镞讹纴C璇瑷镄勬櫘阃傝缉寮猴纴鍦ㄨ稿氲$畻链烘搷浣灭郴缁熶腑閮借兘澶熷缑鍒伴傜敤锛屼笖鏁堢巼鏄捐宪銆侰璇瑷𨰾ユ湁缁忚繃浜嗘极闀垮彂灞曞巻鍙茬殑瀹屾暣镄勭悊璁轰綋绯伙纴鍦ㄧ紪绋嬭瑷涓鍏锋湁涓捐冻杞婚吨镄勫湴浣嶃