首页 > 后端开发 > C++ > C和C++之间的不兼容性

C和C++之间的不兼容性

PHPz
发布: 2023-08-28 18:33:06
转载
1126 人浏览过

C和C++之间的不兼容性

在这里,我们将看到C和C++之间的一些不兼容性。一些可以使用C编译器编译的C代码,在C++编译器中无法编译。并且会返回错误。

  • 我们可以使用一种语法来定义函数,该语法在参数列表之后可选择指定参数类型。

示例

#include<stdio.h>
void my_function(x, y)int x;int y; { // Not valid in C++
   printf("x = %d, y = %d", x, y);
}
int main() {
   my_function(10, 20);
}
登录后复制

输出

x = 10, y = 20
登录后复制
登录后复制

输出

Error in C++ :- x and y was not declared in this scope
登录后复制
  • 在C语言或者一些旧版本的C++中,默认的变量类型是整数。但是在新版本的C++中,会产生一个错误。

示例

#include<stdio.h>
main() {
   const x = 10;
   const y = 20;
   printf("x = %d, y = %d", x, y);
}
登录后复制

输出

x = 10, y = 20
登录后复制
登录后复制

输出

Error in C++ :- x does not name a type
y does not name a type
登录后复制
  • 在C语言中,全局数据对象可以多次声明而不使用extern关键字。C编译器会将其视为多个声明中的一次。

示例

#include<stdio.h>
int x;
int x;
int main() {
   x = 10;
   printf("x = %d", x);
}
登录后复制

输出

x = 10
登录后复制

输出

Error in C++ :- Redefinition of int x
登录后复制
  • 在C语言中,我们可以使用void指针作为赋值操作符的右操作数,或者用来初始化任何指针类型的变量。

示例

#include<stdio.h>
#include<malloc.h>
void my_function(int n) {
   int* ptr = malloc(n* sizeof(int)); //implicitly convert void* to int*
   printf("Array created. Size: %d", n);
}
main() {
   my_function(10);
}
登录后复制

输出

Array created. Size: 10
登录后复制

输出

Error in C++ :- Invalid conversion of void* to int*
登录后复制
  • 在C语言中,如果未指定参数类型,我们可以传递多个参数。

示例

#include<stdio.h>
void my_function() {
   printf("Inside my_function");
}
main() {
   my_function(10, "Hello", 2.568, &#39;a&#39;);
}
登录后复制

输出

Inside my_function
登录后复制

输出

Error in C++ :- Too many arguments to function &#39;void my_function()&#39;
登录后复制

以上是C和C++之间的不兼容性的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:tutorialspoint.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板