c++中后缀名.c 与.cpp的区别
void main()
{
float x,y,z;
x=2.5;
y=4.7;
int a;a=7;
z=x+a%3*(int)(x+y)%2/4;
printf("%f\n",z);
}
比如这段代码,在.cpp中可以运行,但是把这段代码复制到.c中就会出现错误,这是为什么? 展开
.c是c语言的源程序格式,.cpp是c++语言的源程序格式。这是两种不同的语言。
代码的问题原因:
编译器问题——C89和C99
C89规定,在任何执行语句之前,在块的开头声明所有局部变量。在C99以及C++中则没有这个限制,即在首次使用之前,可在块的任何位置都可以声明变量。
因此,变量声明放在前面就不报错了。
扩展资料:
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
C语言缺点:
1.C语言的缺点主要表现在数据的封装性上,这一点使得C在数据的安全性上有很大缺陷,这也是C和C++的一大区别。
2.C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。也就是说,对用C语言的人,要求对程序设计更熟练一些。
C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。
参考资料:C语言-百度百科
二者区别如下:
.c 是c语言的源程序,
.cpp是c++语言的源程序,
这是两种不同的语言,语法不同。但是c++兼容c语言的绝大部分语法特性,所以该段代码在C++中可以运行,但是在C语言中就会报错。
想要在C中运行,可以将定义变量放置在函数开头,修改后程序段如下:
#include<stdio.h>
void main()
{
int a;a=7;
float x,y,z;
x=2.5;
y=4.7;
z=x+a%3*(int)(x+y)%2/4;
printf("%f\n",z);
}
拓展资料:
C++和C#都是编程常用语言,二者相似但又有很多不同,在编程上的具体差异有以下几点
1、设计目的上有所区别。
在C++设计之时考虑到提供先进的面向对象特性,同时也为了提供很好的性能。为了以往的程序得到保证、工程师在开发时的知识兼容,目前C#与C++几乎完全兼容。
2、C#通过底层的虚拟机机制减少了C++语言中常常容易发生的内存泄漏和安全性问题,运行速度相对减慢,但是大大提高了开发者的效率。
3、C#编译成中间语言与Java在字节代码上有些相似。而C++经常把代码编译成汇编语言之后,在通过Iust-In-Time编译进程转换成本机的可执行代码。
4、C#不再需要显式地删除动态分配的给堆的内存,而C++则要这么做,无用存储单元收集器将周期性地清空。
5、C#中指针的运用可能与C++一样,但它只用于已特别标记为应用指针的代码块中。对于大部分的程序,C#依赖VB/Java风格的对类实例的引用,而不需和C++一样频繁地使用指针。
6、C++比C#中用来显式重载的运算符比要多,主要是C#编译器是运用一些定制的基本操作符重载(如=)来自动计算出组合操作符的重载(如+=)
7、C++依赖于标准库,C#依赖于.NET基类。.NET基类是以单一的继承为基础,而标准库是以继承和模板为基础。
8、C#是基于GUI的环境下(不仅仅是Windows环境,尽管现在只是在Windows中可用)专门为编程和背景服务(如Web服务)而设计的。这与语言本身无关,而是反映在基类库的设计中。
c++中后缀名.c与.cpp的区别是.c是c语言的源程序,而.cpp是c++语言的源程序,c++兼容c语言的绝大部分语法特性。
.c文件如下:
.cpp文件如下:
拓展资料
c语言具有以下几个特点,分别是:
1、C语言是一个有结构化程序设计、具有变量作用域以及递归功能的过程式语言。
2、不同的变量类型可以用结构体组合在一起。
3、部份的变量类型可以转换,例如整型和字符型变量。
4、只有32个保留字,使变量、函数命名有更多弹性。
5、C语言传递参数均是以值传递,另外也可以传递指针。
6、通过指针,C语言可以容易的对存储器进行低级控制。
7、预编译处理让C语言的编译更具有弹性。
c++语言具有的特点是:
1、支持数据封装和数据隐藏。
在C++中,类是支持数据封装的工具,对象则是数据封装的实现。C++通过建立用户定义类支持数据封装和数据隐藏。
2、支持继承和重用。
在C++现有类的基础上可以声明新类型,这就是继承和重用的思想。
3、支持多态性。
采用多态性为每个类指定表现行为。多态性形成由父类和它们的子类组成的一个树型结构。在这个树中的每个子类可以接收一个或多个具有相同名字的消息。
推荐于2017-09-27
#include<stdio.h>
void main()
{
float x,y,z;
x=2.5;
y=4.7;
int a;a=7;/*这里 定义变量 c++ 允许,c不允许,c只能把变量定义放在函数开始的部分*/
z=x+a%3*(int)(x+y)%2/4;
printf("%f\n",z);
}
代码没有错误的,我试了下。
应该是编译器选择问题,建议你用两个工程。而且 main 函数的返回最好是 int。
用 .cpp 得用 C++ 编译器编译,用 .c 得用 C 编译器编译。
我分别用的 g++ 和 gcc。