二、C到C++的升级
2021-07-03 08:07
标签:对象 ret 加强 空间 print 实用 全局变量 c语言 定义 C++ 的加强主要表现在:类型的加强、面向对象支持 C++更强调语言的实用性,所有的变量都可以再需要使用的时候再定义,C语言中的变量都必须在作用域开始的位置定义 register 关键字请求编译器将局部变量存储与寄存器中 在C++中依然支持 C++ 编译器有自己的优化方式 C语言中无法获取 C++中可以取得 C++编译器发现程序中需要取 早期的C语言编译器不会对代码进行优化,因此 在C语言中,重复定义多个同名的全局变量是合法的。C语言中多个同名的全局变量最终会被链接到全局数据区的同一个地址空间上。 在C++中,不允许定义多个同名的全局变量。 C语言中的struct定义了一组变量的集合 C语言中的struct定义的标识符并不是一种新的类型 C++中的struct用于定义一个全新的类型 C++中所有的标识符都必须显示地声明类型 C语言中地默认类型在C++中是不合法的 在C语言中: 在C++中: C++中无默认类型,如果没有参数,就是不接受任何参数, C++ 不接受无返回值类型的函数,不允许默认类型 C++更强调实用性,可以在任意的地方声明变量 C++中的register只是一个兼容C的作用 C++编译器能够更好地进行优化 C++中地任意标识符都必须显示地指明类型 二、C到C++的升级 标签:对象 ret 加强 空间 print 实用 全局变量 c语言 定义 原文地址:https://www.cnblogs.com/chenke1731/p/9623654.html1、C++改进
int c = 0;
for (int i = 1; i
register
关键字
register
变量的地址register
变量的地址register
变量的地址时,register
对变量的声明变得无效register
变量是一个很好的补充2、同名变量的处理
3、
struct
关键字的加强// C语言
typedef struct _tag_student Student;
// 将struct _tag_student类型起了一个别名Student
struct _tag_student{
const char * name;
int age;
}
// C++
// struct定义一个全新的类型
struct Student
{
const char * name;
int age;
};
4、小思考
int f()
与int f(void)
的区别:有没有区别,要看用什么编译器
int
,接收参数是任意个数参数,后面的函数表示返回值为int
,不接收任何参数5、默认类型
f(i)
{
printf("i = %d\n", i);
}
g()
{
return 5;
}
int f()
表示返回值为 int
, 接收任意参数的函数f(void)
表示返回值为int
的无参函数
int f()
和 int f(void)
具有相同的意义,表示返回值为int
的无参函数int f(void)
只是为了兼容C语言#include
6、总结