十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

第二天 C语言预备知识

第二天 C语言预备知识 一.低级高级语言指的是更接近硬件层级还是应用层级二.GCC广泛使用的编译器其编译过程(.c)1.预处理:gcc -E main.c -o main.i在编译前把代码中的宏名直接替换成对应的文本(宏定义),展开头文件删除注释,处理条件编译。2.编译gcc -S main.i -o main.s将.c文件转换成汇编文件3.汇编:gcc -c main.s -o main.o将汇编文件转换成二进制文件目标文件4.链接gcc main.o -o main.exe将多个二进制文件目标文件.o和库文件合并成一个可执行文件.exe先将源文件通过预处理器cpp进行预处理再通过编译器gcc)将源文件编译成汇编文件再通过汇编器as)转换成二进制文件目标文件.obj 最后通过链接器ld将多个目标文件和库文件链接成最终可执行文件.exe链接阶段是发生未定义函数错误的阶段。在链接阶段编译器会将编译后的目标文件与库文件、其他目标文件进行链接。如果存在函数的调用但是没有对应的函数定义或者在链接的文件中找不到定义链接器会报告一个“未定义引用”错误。这时编译器才能检测出是否有未定义的函数。编译阶段在这个阶段编译器会将源代码转换成目标代码即机器码。此时编译器会检查语法错误、类型错误等但它通常不会检查是否有未定义的函数。只要函数已被声明或者其定义可以在某个地方找到编译器就会继续生成目标代码。三.IDE(集成开发环境的软件)一般包括代码编辑器编译器调试器和图形用户界面工具。四.C语言支持结构化编程不支持面向对象编程支持低级内存操作具有良好的可移植性具有高的执行效率五.main()函数是程序的入口也叫主函数有且只有一个.c文件源文件:.c文件包含程序主要实现代码.h文件头文件:通常包含函数的声明宏定义结构文体定义全局变量声明以及其他需要在多个源文件中共享的内容。六.使用#ifdef和#endif可以避免包含同一头文件。使用#ifdef条件编译且条件不满足时可能导致头文件内容被忽略。.obj文件通常是目标文件后缀七.在C语言中main()函数返回类型为int,表示程序的退出状态。通常返回0表示成功返回非0表示出错0八.main()函数 int argc表示命令行参数的数量argc是一个整数表示通过命令行传递给程序的参数数量。包括程序名称在内argc的值总是至少为1。int main(int argc, char *argv[ ])int main(int argc, char **argv) 等价写法argv 是指向字符串数组的指针argc 是 “argument count” 的缩写意思是 命令行参数的个数。argv[argc] 始终是 NULL 空指针结束标记
返回列表