- 博客(10)
- 收藏
- 关注
原创 指针123
指针变量简称指针,是一种特殊类型的变量,专用于存放变量在内存中的起始地址。指针也是一种类型。比如其中指针变量p中存储的是变量a的地址,也可以说指针p指向变量a。在32位编译器,指针占4个字节,64位编译器占8个字节。不管什么类型的指针,大小都是一样的。*运算符被称为解引用,通过指针访问变量,*p取得是p指向的变量a的值。并且,可以通过指针解引用的方法对变量进行赋值,效果和用变量名一样。其中 *pa=10 等价于 a=10。多个指针可以指向同一个变量。
2024-01-16 23:14:30
1565
原创 静态链接的构建和使用
运行时发生的动作称为动态行为,动态链接就是在运行的时候根据需要加载的动态链接库在加载时确定外部符号的地址,在linux中动态链接库后缀一般是.so(shared object),动态链接库不需要打包到可执行的文件当中,只需要独立存在于特定的路径当中,因此任何程序都可以加载动态链接库的文件。在编译阶段发生的动作称为静态行为,静态链接就是在编译的时候确定外部符合的地址并将依赖的符号所对应的目标文件编译到一起形成最终的可执行文件。后缀一般为.a,编译后一般存在于某个特定的程序文件当中,不能共享。
2023-12-26 23:55:18
410
原创 C语言的编译过程
COFF格式的目标文件由多个段(Section)组成,每个段包含一定范围的数据,例如代码、数据和符号表等。每个段都有一个段头(Section Header),它包含有关该段的信息,例如名称、大小、地址、属性等。符号表用于记录程序中的符号信息,例如函数名和变量名,重定位表则用于在程序加载时对代码中的符号和地址进行重定位。多出来一个main.o的文件,这个目标文件main.o还没有链接,不能运行,链接完成以后才能运行。多出来一个main.i的文件,这个文件是宏展开以后得文件,就是将main.c中的。
2023-12-26 00:06:15
350
原创 C语言的预处理之条件编译
例:在c文件中,如果引入math.h,#ifndef 可以解决重复引入的问题,重复引入相当于源代码被引入多次,编译器会报错。
2023-12-20 00:18:56
316
原创 预处理和宏
引号中可以填写相对路径的头文件。编译器首先在当前目录下查找头文件,如果没有找到,再到系统路径下查找。双引号兼容。编译器跳过本地路径,直接到系统路径下查找头文件。在CMakeLists.txt文件中配置搜索路径include_directories("xxxx") 将xxx目录加入到搜索目录。
2023-12-19 22:41:44
321
原创 C语言环境配置
下的所有文件复制到目录 C:\msys64\mingw64\x86_64-w64-mingw32\include。删除原来的 C:\msys64\mingw64\include 目录。pacman -S mingw-w64-x86_64-toolchain执行之后。将目录 C:\msys64\mingw64\include。配置clion的工具链时一直提示 Mingw 未找到。管理员权限下的cmd执行。
2023-12-13 00:54:57
461
原创 C语言原型
函数的声明就是函数的原型。函数调用的时候,只需要知道函数的参数、函数名、函数返回值就够了,函数实现谁提供都可以,只要编译以后能找到就可以了。3. 函数参数列表如果没有参数,需要写void,如果为空则表示不知道多少个参数。函数的返回值类型可以省略,默认是int。1. 在函数声明中,参数名称可以省略。
2023-12-10 11:54:42
340
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人