大家谈谈c与c++编码的不同,就是有时编译同一个文件时为什么后缀为.c可以过,而.cpp就不行,说是类型不对大家谈谈,疑惑呀,本是同根生
解决方案 »
- CreateCompatibleDC与BitBlt问题
- 如何响应ToolBar上的鼠标移动消息?
- CFile类的SetStatus不能对文件夹操作吗?
- 几个控件叠在一起,我要使其中某个控件置顶,有函数吗?
- 请问DestructElements的实现位置及格式的问题
- 如何在对话框中打开图象然后对其亮度调整并实时显示效果
- CString型转化
- DOS下如何实现图形转换?
- 如何改变Button控件的背景颜色?
- MFC写的For IE 的OCX,为什么在客户环境注册有问题,那位朋友能指点一下MFC写的OCX控件在客户子注册的要点,谢谢!
- 华为核心网招聘
- 在xp上制作的小程序在2000中运行,对话框的某些按钮不能正常显示!!
.c用的是C编译器,.cpp用的是C++编译器,得到不同的编译结果当然是十分正常
他们是不同的编译器
nlstone(天外流星) 说的很对
char s[3] = "abc";c,pass;
c++,fail,改成char s[4] = "abc";才可以
C和C++用的是不同的编译器,编译后许多地方是不同的。
比如,由于C++中支持重载,因此可以有相同的函数名,而C中是不允许函数同名的。
当将某函数f()放在cpp文件中编译后,它的函数名将会变成?f@@YAHH@Z之类的形式,其中YAHH等字符代表重载函数的不同的参数。而当f()以.c文件编译时,编译后的函数名只是在原有的函数名前加一个下划线。即
_f()的形式。当然C和C++的程序是有互相转换的接口的。
如果你要在cpp文件中使用C,可以在代码头部加上如下的形式:
extern "C"
{
int f();
}
这样当cpp程序编译到f()时,这个函数将以C的约定被编译。以上只是自己的一些理解,可能有写错的地方,请方家指正。
cannot convert parameter n from 'struct _XXXXXXXXXX ** ' to 'void ** '
参考了各位大虾的建议但是这个问题怎么解决呢?大家说一下了。
(void **)&pStructVariable
int y;
y=5;
int i;//错
但是
int y;
y=5;
{
int i;//正确
}这类区别很多,都是细节上的