C相关知识

C相关知识C 语言相关笔记 指针函数

大家好,欢迎来到IT知识分享网。

1.函数指针与指针函数

1.1 指针函数

int *myfun(int x,int y); 
int *fun(int x,int y); int * fun(int x,int y); int* fun(int x,int y); 

*靠近返回值类型的写法更容易理解。

1.2 函数指针

函数指针,其本质是一个指针变量,该指针指向这个函数。函数指针就是指向函数的指针。声明格式如下:

int (*myfun)(int x,int y); 

把一个函数的地址赋值给函数指针变量有两种写法:

myfun = &Function; myfun = Function; 
x = (*myfun)(); x = myfun(); 

2. 常量指针与指针常量

3. inline函数

3.1 GCC编译原则

编译器工作时,以 .c 文件为单位逐个编译 .o 文件,每个 .c 文件的编译是独立的,如果 当前 .c 文件中要用到外部函数,那么就在编译时预留一个符号。等到所有 .o 文件生成后,链接时才给这些符号指定地址(链接脚本决定地址),所以这个 . c 文件编译时只会看到外部函数的声明而无法知道它的函数体。而内联函数声明时,加关键字 inline 修饰。调用到它的地方直接将汇编代码展开,而不需要通过符号(函数名)地址跳转。

3.2 为什么要使用inline函数

3.3 使用限制

3.4 使用方式

gcc 的 inline、static inline 都很好理解:就是对普通函数添加了可内联的属性,每个函数还是有自己的汇编代码段,只是其他函数调用内联函数时,不是通过符号地址跳转,而是直接展开内联函数代码段。

4. const用法

在这里插入图片描述

5. 全局变量

在这里插入图片描述
PS:针对嵌入式软件

6. 字节序和比特序

在这里插入图片描述

6.1 字节序

在这里插入图片描述

6.2 比特序

7. 大小端

8. 字节对齐

9.其他

9.1 局部变量释放后是否会清除栈的值?

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/118328.html

(0)
上一篇 2025-11-13 22:26
下一篇 2025-11-13 22:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信