编写一个在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等。

更新于:2020年7月17日

浏览量 182 次

启动您的职业生涯

完成课程获得认证

开始学习
广告