C++与C的区别 ----小心Dev-c

参考资料来源:https://bbs.csdn.net/topics/391845239

 

近期练习pta以及以前对C++的简要了解,让我有了一些想说的东西。

新手学习C语言或是C++,很多都会选择Dev-c开始。但是倘若想要区分开C和C++,就要注意保存的问题。Dev-c保存时,默认为.cpp,这是C++文件的后缀。不过由于C++包含着C,所以在.cpp中既可以写C++,也可以写C(就是可兼容)。但最终还是被编译器视为C++程序。

如果想要写纯C语言代码,就要在保存时将文件后缀改为.c

当然,一般我都是编译时弹出保存窗口,直接保存为cpp,毕竟还要修改,就很麻烦。

 

不过,在学习C语言时,遇到一些代码错误,或是与自己的认知有了冲突,就要考虑这方面的影响。

下面举两个例子。

1.听说"随用随定义"是C++的特性,是C语言没有的,为什么我写C程序也成功了呢?

如下:

实际上,细心的人就会发现,我上面文件是.cpp的。

那我改为.c会怎样呢?

 

结果就是,出错了。

结论就是:

看似你写的是C语言的代码,#include<stdio.h>等等。但只要保存为.cpp,编译器就认为它是C++文件,里面写任何C++的代码都ok。

而倘若你把他改成真正的C程序.c ,你就只能写C语言,C++的代码碰都不要碰,反正也会报错。

 

2.最近pta上的函数题

 

起初,我就是因为习惯.cpp而出了问题,给我报各种错。查了一下才明白,由于我是.cpp,而C++新增的类型就是bool类型,已经有true 和 false 的定义了。所以这里的裁判程序样例里的 typedef 和 enum  是完全没必要的,还会出问题。那怎么办?改成 .c 就行了。(.c没有那些东西,所以才要  typedef)

 

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值