编写一个在C++中无法编译的C程序
在这里,我们将编写一些在C++中无法编译的C程序。尽管C++被认为是C的继承者,它拥有C的所有特性并兼容C代码,但有些程序在用C++编译器编译时无法编译或会报错。
一些在C++中无法编译的C程序的列表如下:
在声明之前调用函数 - 在C++中,在声明之前调用函数会产生编译错误。但在C中可以正常工作。
示例
#include <stdio.h> int main(){ printHello(); return 0; } void printHello(){ printf("TutorialsPoint"); }
输出
TutorialsPoint
使用类型转换指针 - 如果我们在C中声明一个void指针,然后使用此指针指向其他数据变量。编译器本身可以在C中做到这一点,但在C++中,这些指针需要进行类型转换。
示例
#include <stdio.h> int main(){ void *ptr; int *ptr2 = ptr; return 0; }
声明常量值而不初始化 - 在C中,可以声明常量值而不为其提供任何值,但在C++中这样做会返回错误。
示例
#include <stdio.h> int main(){ const int x; printf("%d", x); return 0; }
输出
0
使用普通指针与const变量 - 在C++中不允许这样做,而C允许使用普通指针与const变量。
示例
#include <stdio.h> int main(void){ int const x = 3424; int *cptr = &x; printf("value of pointer : %d\n", *cptr); return 0; }
输出
Value of pointer: 3424
使用特定关键字作为变量名 - 在C编程语言中,使用某些关键字作为变量名是有效的,即在C中可以编译,但在C++中却不能编译。
示例
#include <stdio.h> int main(void){ int class = 5; printf("%d", class); }
输出
5
这些关键字包含在C++中,还有一些是新的,例如new、delete、explicit等。
广告