LINUEX部分指令 C语言

本文详细介绍了Linux系统中使用gcc编译器进行C语言编程的相关指令,包括预处理、编译过程以及gcc的各种选项。还讨论了C语言的预处理指令,如#include和条件编译,并讲解了自定义数据类型如struct、union和enum。同时,文章涵盖了指针、运算符、数组、逻辑结构、类型修饰符和内存管理等多个方面。
摘要由CSDN通过智能技术生成

./ 文件名 表示在当前目录执行某文件
linux系统中0代表成功,非0代表失败

gcc编译器

gcc是一种翻译器,将高级语言翻译成机器指令(翻译组织)
创建文件使用gcc指令时要加后缀.c就表示为c语言

gcc -o =output输出
gcc -o 输出文件名 输入文件名
输出文件为一个新建文件 输入文件为一个待翻译或执行的文件
即将c输出成机器指令
gcc -v 打印信息
显示调用的组织
需要调用多步
gcc-S 后跟- o 大写的S 将.c文件先翻译成.s(汇编)
gcc -c 将.s文件变成.o (目标文件)
gcc-o 将.o变为可执行文件
事实直接用gcc -o就自动执行前几步命令

gcc -E 显示预处理文件 (.i为预处理文件)

C的预处理

#include <>(尖括号一般从系统的环境变量种中寻找)“”(双引号一般是自己定义 的)尖括号的从文件只从系统库中找,双引号的是先从系统中找再从当前目录寻找文件
gcc -I跟查找头文件的目录 用来解决预处理中not find 错误

条件编译 #ifdef #else #endif

比如在工程开发调试时需要使用_FILE_来看所在文件名,但是发行版本又不能带有
如下代码。如果在预处理中定义了ABC则显示文件名,否则不显示

#include<stdio.h>
int main()
{
   
#ifdef ABC
printf("===%s===",_FILE_);
#endif
printf("hello world!");
return 0;
}

gcc-D等价于在编译之前加入宏定义
如 gcc-DABC=#define ABC
预定义宏(系统预定义,由下划线组成)
FUNCTION 函数名
LINE 行号
FILE 文件名
显示当时执行这条语句所在的函数名,第几行和所在文件名

宏展开下的#、##使用
# 字符串化 如defineABC(x) #x
#include <stdio. h>
int main()
{
printf(ABC(ab)); // ABC(ab)等效于 “ab”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值