- 博客(6)
- 收藏
- 关注
原创 内联函数学习
1.什么是内联函数 在计算机科学中,内联函数(有时称作在线函数或编译时期展开函数)是一种编程语言结构,用来建议编译器对一些特殊函数进行内联扩展(有时称作在线扩展);也就是说建议编译器将指定的函数体插入并取代每一处调用该函数的地方(上下文),从而节省了每次调用函数带来的额外时间开支。但在选择使用内联函数时,必须在程序占用空间和程序执行效率之间进行权衡,因为过多的比较复杂的函数进行内联扩展将带来很大的存储资源开支。tips:关键字 inline 必须与函数定义体放在一起才能使函数成为...
2021-08-22 15:11:53
461
原创 有符号数与无符号数进行运算时,会发生隐式类型转换,有符号数会转换为无符号数
其实可以这样理解,两个不同类型的数进行运算,会进行隐士转换,“小”的会向“大”的转换。同理,无符号整数和有符号整数运算,有符号整数会转换为无符号整数。注意,这里的运算当然包括比较大小。比如:#include <stdio.h>#include <string.h>int main(void){ char *p = "hello"; int a = -1; /*比较字符串的长度和a的大小*/ if(strlen(p) > a
2021-08-16 22:26:52
1454
原创 C语言,函数没有return,返回类型就是void的么?
函数没有return,返回类型不一定是void的。也就是说,函数的返回类型还是要看函数的声明和定义。那么定义一个具有返回值类型的函数,但是不写return,或者该函数中某些分支忘记return了,编译器会报错么?实测不会。原理:函数声明时的返回类型指明,函数出栈后要去寄存器中取值(取出来的是return值的地址),函数中没有return,只是没有给这个寄存器存入合法的值。出栈后还是会去读寄存器,只是读出来的是垃圾数据。...
2021-08-16 22:03:38
5684
原创 C语言整数溢出
关于整数溢出讲的比较完整的帖子:https://coolshell.cn/articles/11466.htmlhttps://www.bookstack.cn/read/CTF-All-In-One/doc-3.1.2_integer_overflow.md工作考试中遇到的一个整数溢出的问题:如下哪个函数会有整数溢出问题?#include <stdio.h>int funs(short a, short b){ return (a+b);}..
2021-07-17 10:34:55
917
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅