(嵌入式c语言)c语言编译常见错误

这篇具有很好参考价值的文章主要介绍了(嵌入式c语言)c语言编译常见错误。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

c语言->机器码的过程:

预处理(gcc -E -o)->编译(gcc -S -o)->汇编(gcc -c -o)->链接(gcc -o)

预处理

将代码中的define 和 include替换成实体码 

define和include不是关键字,关键词是在编译过程中处理的。

(嵌入式c语言)c语言编译常见错误,c语言,linux,开发语言

包含

#include 包含头文件

#define 宏  替换  不会进行语法检查

#define 宏  宏体   宏体要加括号

#define ABC  (5+3)   要避免出错必须加括号限制宏体

#define ABC(x)  (5+(x))   

#ifdef #else #endif 条件编译

宏体当中的#  ##

(嵌入式c语言)c语言编译常见错误,c语言,linux,开发语言

#是字符串化,将宏体字符串化 “ ”

##  连接符号的用法

 (嵌入式c语言)c语言编译常见错误,c语言,linux,开发语言

 

预定义宏

(嵌入式c语言)c语言编译常见错误,c语言,linux,开发语言

__FUNCTION__

__LINE__

__FILE__

用法

(嵌入式c语言)c语言编译常见错误,c语言,linux,开发语言

 

 

条件编译

(嵌入式c语言)c语言编译常见错误,c语言,linux,开发语言

 不修改源码,使用gcc编译器快捷定义的方法

(嵌入式c语言)c语言编译常见错误,c语言,linux,开发语言

 

 

编译

常见的是语法错误

(嵌入式c语言)c语言编译常见错误,c语言,linux,开发语言

 链接

(嵌入式c语言)c语言编译常见错误,c语言,linux,开发语言 

将各个.o文件融合生成可执行程序文章来源地址https://www.toymoban.com/news/detail-668373.html

到了这里,关于(嵌入式c语言)c语言编译常见错误的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 嵌入式Linux Qt交叉编译环境搭建

    TinkerBoard2主板,BuildRoot根文件系统,package自带的Qt版本为5.14.2,所以安装的版本也是5.14.2 安装的组件看个人需求,我都要了 默认安装路径/opt/Qt5.14.2/ 源码路径/opt/Qt5.14.2/5.14.2/Src/ 安装后选定的打包工具路径/opt/Qt5.14.2/5.14.2/(我的默认有gcc_64和android) 这种方法容易导致version `G

    2024年01月25日
    浏览(53)
  • 嵌入式Linux:如何进行嵌入式Linux开发?

    目录 1、裸机开发 2、SDK开发 3、驱动开发 3.1、字符设备驱动 3.2、块设备驱动 3.3、网络设备驱动 4、应用开发 嵌入式Linux开发主要有四种方式:裸机开发、SDK开发、驱动开发和应用开发。 裸机开发通常指在没有操作系统支持的环境中直接在硬件上运行程序的开发。这种开发方

    2024年01月25日
    浏览(80)
  • 关于嵌入式开发的一些信息汇总:嵌入式C开发人员、嵌入式系统Linux

    这篇文章是关于嵌入式开发的一些基本信息,供想入行的人参考。有一些作者本人的想法,以及来自外网的大拿的文章翻译而来,原文链接在此Learning Linux for embedded systems,再次感谢,支持原创。 普通C开发人员和嵌入式C开发人员之间的 基本区别在于 ,因为嵌入式C程序被设

    2024年02月03日
    浏览(71)
  • 嵌入式C语言自我修养笔记1-ARM体系结构与编译运行

    ARM 体系结构 ARM 体系结构 ARM 相对精简指令集 RISC 还有如下区别 ● ARM 有桶型移位寄存器,单周期内可以完成数据的各种移位操作。 ● 并不是所有的 ARM 指令都是单周期的。 ● ARM 有 16 位的 Thumb 指令集,是 32 位 ARM 指令集的压缩形式,提高了代码密度 ● 条件执行:通过指令

    2024年02月07日
    浏览(66)
  • 嵌入式C语言自我修养《GNU C编译器扩展语法》学习笔记

    目录 一、C语言标准和编译器 二、指定初始化 三、宏构造“利器”:语句表达式 四、typeof与container_of宏 五、零长度数组 六、属性声明:section  七、属性声明:aligned  C语言标准的发展过程: ● KR C. ● ANSI C. ● C99. ● C11. 指定初始化结构体成员:         和数组类似,

    2024年02月08日
    浏览(51)
  • 嵌入式C语言-预编译命令(#define、#if、#ifdef、#ifndef、#undef)

    宏定义 #define机制包含了一个规定,允许把参数替换到文本中,这种实现通常称为宏定义。下面是宏的声明方式: 其中,parameter-list(参数列表)是由逗号分割的符号列表,它们可能出现在stuff中。name必须与左括号紧邻。比如下面的例子: 提示 : 所有用于数值表达式进行求

    2024年02月07日
    浏览(33)
  • 【嵌入式Linux】编译应用和ko内核模块Makefile使用记录

    在Makefile中,变量的赋值可以使用以下几种方式: = :最基本的赋值符号,表示简单的延迟展开(lazy expansion)方式。变量的值将会在使用变量的时候进行展开。 := :立即展开(immediate expansion)的赋值方式。变量的值在赋值的时候立即展开,并且在后续的使用中不再改变。

    2024年02月08日
    浏览(52)
  • 嵌入式开发:单片机嵌入式Linux学习路径

    SOC(System on a Chip)的本质区别在于架构和功能。低端SOC如基于Cortex-M架构的芯片,如STM32和NXP LPC1xxx系列,不具备MMU(Memory Management Unit),适用于轻量级实时操作系统如uCOS和FreeRTOS。高端SOC如基于Cortex-A架构的芯片,如三星、高通、飞卡、全志和瑞芯微等,具备MMU,支持虚拟内

    2024年02月15日
    浏览(57)
  • 【ARM 嵌入式 编译系列 4 -- linux 编译属性 __read_mostly 介绍】

    请阅读 【ARM GCC 编译专栏导读】 上篇文章:【ARM 嵌入式 编译系列 3.3 – gcc 动态库与静态库的链接方法介绍】 下篇文章:【ARM 嵌入式 编译系列 4.1 – GCC 编译属性 likely与unlikely 学习】 __read_mostly 是一个在Linux内核编程中用到的宏定义,这是一个gcc编译器的属性,用于告诉编

    2024年02月13日
    浏览(57)
  • MCU嵌入式开发-硬件和开发语言选择

    主要考虑以下方面来决定是否需要RTOS支持: 需要实现高响应时的多任务处理能力 需要实现实时性能要求高的任务 需要完成多个复杂的并发任务 具备满足工控系统实时性要求的各项功能特性。通过它提供的硬件库、线程支持、中断支持等,可以完全控制微控制器的各个外设,实

    2024年02月12日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包