文章 2024-06-28 来自:开发者社区

技术心得记录:嵌入式开发中常用到的C语言库函数

sprintf包含在头文件中int sprintf(char str, const char format, ...),将可变参数(...)按照format格式化成字符串,并将字符串复制到str中。如果成功,则返回写入的字符总数,不包括字符串追加在字符末尾的空字符串。如果失败,则返回一个负数。举例: 1 #inc...

文章 2024-06-04 来自:开发者社区

嵌入式C语言(十二)

前言 Linux内核是基于C语言编写的,熟练掌握C语言是深入学习Linux内核的基本要求。 GNU C语言的扩展 GCC的C编译器除了支持ANSI C标准之外,还对C语言进行了很多的扩充。 这些扩充对代码优化、目标代码布局以及安全检查等方面提供了很强的支持,因此支持GNU扩展的C语言称为GNU C语言。 Linux内核采用GCC编译器,所以Linux内核的...

文章 2024-06-04 来自:开发者社区

嵌入式C语言(十三)

Linux内核中常用的数据结构和算法 Linux内核代码中广泛使用了数据结构和算法,其中最常用的两个是链表和红黑树。 1 链表 Linux内核代码大量使用了链表这种数据结构。 链表是在解决数组不能动态扩展这个缺陷而产生的一种数据结构。 链表所包含的元素可以动态创建并插入和删除。 链表的每个元素都是离散存放的,因此不需要占用连续的内存。 链表...

文章 2024-06-04 来自:开发者社区

嵌入式C语言(十四)

在现代操作系统架构中,内核空间和用户空间之间增加了一个中间层,这就是系统调用层。 系统调用层主要有如下作用。 为用户空间程序提供一层硬件抽象接口。这能够让应用程序编程者从学习硬件设备底层编程中解放出来。例如,当需要读写一个文件时,应用程序编写者不用去关心磁盘类型和介质,以及文件存储在磁盘哪个扇区等底层硬件信息。 保证系统稳定和安全。应用程序要访问内核必须通过系统调用层,那...

文章 2024-04-10 来自:开发者社区

嵌入式C语言(十)

内建函数 这篇我们来看看什么是内建函数欸? 什么是内建函数 内建函数,顾名思义,就是编译器内部实现的函数。**这些函数和关键字一样,可以直接调用,**无须像标准库函数那样,要先声明后使用。 **内建函数的函数命名,通常以__builtin开头。**这些函数主要在编译器内部使用,主要是为编译器服务的。内建函数的主要用途如下。 ● 用来处理变长参数列表。 ...

嵌入式C语言(十)
文章 2024-04-10 来自:开发者社区

嵌入式C语言(九)

内联函数 这个万一就是真的有点意思了,来来接着看看 这一节,我们接着介绍与内联函数相关的两个属性:noinline和always_inline。这两个属性的用途是告诉编译器,在编译时,对我们指定的函数内联展开或不展开。 static inline __attribute...

文章 2024-04-10 来自:开发者社区

嵌入式C语言(八)

继续来看看新的属性:weak 这个符号知道是弱,但是这个是干嘛的呢?我们先来学习一下强符号和弱符号 强符号和弱符号 GNU C通过weak属性声明,**可以将一个强符号转换为弱符号。**使用方法如下。 void __attribute__((weak)) fun...

嵌入式C语言(八)
文章 2024-04-10 来自:开发者社区

嵌入式C语言(七)

__attribute__扩展的format属性,来指定变参函数的参数格式检查。 __attribute__((format (archetype, string-index, first-to-check))) void LOG(const char *fmt, ...) __att...

嵌入式C语言(七)
文章 2024-04-10 来自:开发者社区

嵌入式C语言(六)

对齐这个事情在内核中可不是个什么小事,内核中涉及到内存方面的都需要非常的谨慎。 上一篇我们知道了可以通过__attribute__来声明属性,也知道了section这个属性,这篇我们来看看关于内存对齐使用的两个属性–>aligned和packed 地址对齐:aligned GNU C通过__attribute__来声明aligned和packed属性,指定一个变量或...

嵌入式C语言(六)
文章 2024-04-10 来自:开发者社区

嵌入式C语言(五)

属性声明:section 我知道不耻下问是个好事,而且身边那么多大牛,不能算不耻,但是把一些能自己学习搞定的事情,拿去打扰别人,我觉得一点也不酷。 GNU C编译器扩展关键字:attribute __attribute__关键字用来声明一个函数、变量或类型的特殊属性。 这个特殊属性是什么? 作用就在于让编译器在编译程序的时候进行特定方面的优化或者代码检查。...

嵌入式C语言(五)

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

开发与运维

集结各类场景实战经验,助你开发运维畅行无忧

+关注
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问