C语言的部分特性

  1. C语言操作底层或者是操作内存资源的优势是最合理的。

  2. C语言重在学习思路,而不是语法。

  3. gcc编译器:
    gcc编译器根据文件后缀名寻找翻译官的,所以正常要带上 .c 或 .cpp (代表不同的翻译组织)
    gcc -o 输出的文件名 输入的文件名
    如:gcc -o build 001.c
    ./运行的程序
    如:./build

  4. 翻译组织:
    gcc -v -S -c -o
    gcc -E 预处理指令
    预处理 --> 编译 --> 汇编 --> 链接
    在这里插入图片描述
    不是关键字

  5. 打印程序运行信息,函数调试时可以使用,用于程序错误时打印错误位置:
    __FUNCTION__, 当前的函数名
    __FILE__, 当前的文件名
    __LINE__ 当前程序的行号,
    printf(“the %s,%s,%d\n”,__FUNCTION__,__FILE__,__LINE__);

  6. 调试时采用条件编译,如果定义了ABC,就执行某些语句,否则就不执行,在用gcc编译器时,可以直接在运行时执行该指令,而不需在程序内部添加条件编译语句。
    如 : gcc -DABC -o build 001.c
    -D表示调试,后面直接跟条件编译的判断变量。

  7. 硬件操作的最小单位:
    bit 为1或0
    软件操作的最小单位:
    Byte 1Byte=8bit

  8. 类型修饰符: auto register static const extern volatile
    register ,限制变量定义在寄存器上的修饰符。定义一些快速访问的变量或者经常需要访问的变量,提高运行速度,如:register int a;但CPU内部的寄存器个数有限,当寄存器不足时,a 还是会放在存储器即内存中。取址运算符&对寄存器不起作用。
    static 修饰3种数据:
    (1) 修饰局部变量,函数内的变量:
    默认的局部变量在栈空间存在,生存期较短;局部静态化之后,局部变量在静态数据段保存,生存期变长。

int fun()
	{
		int a;====>static int a;
	}	

(2) 修饰全局变量,函数外的变量:
防止重命名,限制变量名只在本文件内起作用。

int a;====>static int a;
int fun()
	{
		代码段
	}	

(3) 函数的修饰符,修饰全局函数,函数外的变量:
防止重命名,限制函数名只在本文件内起作用。

int fun()====>static int fun();
	{
		代码段
	}	

适用于多文件的工程项目中。
const 只读的变量,并不是严格的常量,可以使用指针改变const 修饰变量的值。
volatile 告知编译器编译方法的关键字,不优化编译,防止优化指向内存地址。修饰变量的值的修改,不仅仅可以通过软件,也可以通过其他方式(硬件)

  1. CPU访问内部寄存器比访问内存要快很多,寄存器又称为CPU缓存器,寄存器越多,运行速度越快。
    在这里插入图片描述

  2. memcpy 和 strcpy的区别

  3. 结构体
    最终结构体的大小一定是4的倍数,位域。结构体作为形参时,最好用指针的形式进行传递,节约内存空间。
    结构体变量:
    struct abc{int a; int b;int c;};
    struct abd buf;
    实参:
    fun(buf); fun(&buf);
    形参:
    void fun(struct abc a1); void fun(struct abc *a2);
    推荐使用右侧的用法。连续空间的传递最好使用指针
    基本数据类型 fun(void)
    {
    基本数据类型 ret;
    ********
    ret =***;
    return ret;
    }

  4. const
    const 全局变量放在常量区,一旦初始化,不能修改;
    const 局部变量放在栈上,不能直接修改,但可以通过指针间接修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值