首页
社区
课程
招聘
[旧帖] 6.0 .cpp 和.c文件的编译区别 0.00雪花
发表于: 2010-11-30 01:09 4341

[旧帖] 6.0 .cpp 和.c文件的编译区别 0.00雪花

2010-11-30 01:09
4341
6.0 .cpp 和.c文件的编译区别谁知道哦了?

SendDlgItemMessage(hWnd,IDC_EDIT_FH_CHARACTERISTICS,WM_SETTEXT,MAX_PATH,NULL);

这个函数,在.cpp文件能通过。  在.c 中最后一个参数就得 (LPARAM)NULL 这样。为啥了?

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 245
活跃值: (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
自己回答吧。

c 中 NULL ((void*)   0)
c++ NULL 0

c++ 不经过转换是不能随便赋给其他指针的
2010-11-30 01:26
0
雪    币: 401
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
C++是强类型嘛,类型检查比C严格一点。
2010-11-30 14:25
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
c 中 NULL ((void*)   0)
c++ NULL 0

c++ 不经过转换是不能随便赋给其他指针的
2011-1-11 16:19
0
雪    币: 324
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
用C更好一些
2011-1-11 19:33
0
雪    币: 26
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
是呵,你自己说的也对,另外还有一些连接的时候的区别:

"C编译器和C++编译器都会对符号(函数或变量)名作某些修正,但两者采用的修正方法不同,所以两者生成的目标文件不能互相链接。在C++中使用extern "C"可以让C++符号获得C链接特性。由于C++编译器会自动定义__cplusplus宏,所以在C语言头文件中采用这种结构可以保证无论使用何种编译器,生成的目标文件都具有C链接特性,能够与标准C编译器所生成的目标文件相链接。
通常c/c++编译器会根据文件后缀来选择符号修正,所以最好把c的代码放到.c文件中,把c++的代码放到.cpp文件中。"

以上是引用的,我的理解呢,.c标识为c程序文件,.cpp标识为c++程序文件,各自编译后的obj文件里的同样的函数其符号是不一样的,使用不当的话,在链接的时候就会出现函数找不到的问题.
2011-1-13 11:47
0
游客
登录 | 注册 方可回帖
返回
//