首页
学习
活动
专区
圈层
工具
发布

#编译

【Linux内核模块】模块的编译:从代码到可加载模块的 “变身术“

用户12001910

普通 C 程序编译很简单,gcc hello.c -o hello就行,但内核模块可不行。这就像做面包和做蛋糕的区别 —— 虽然都是面粉做的,但烤箱温度、配料比...

700

【Linux内核模块】模块声明与描述

用户12001910

想象你去参加一个技术会议,门口的签到表会记录你的姓名、公司、职位 —— 这些信息帮助主办方识别你的身份。内核模块加载时也一样,内核需要知道:​

1400

【Linux内核模块】导出符号详解:模块间的“资源共享”机制

用户12001910

在内核中,模块 A 可以将自己的函数或变量 "导出",供模块 B 使用,这就是导出符号的核心思想。

1000

【Linux内核模块】Linux内核模块简介

用户12001910

内核模块可以通过EXPORT_SYMBOL宏导出函数 / 变量,供其他模块使用:

1200

云原生构建平台如何对接GitLab仓库触发自动编译?腾讯云CNB实现高效DevOps闭环

gavin1024

2300

【C++高级主题】异常处理(五):异常说明

用户12001910

在 C++ 的异常处理体系中,异常说明(Exception Specification) 曾是一种用于声明函数可能抛出哪些异常的机制。从 C++98 引入到 C...

1200

【C++模板与泛型编程】模板编译模型

用户12001910

在 C++ 编程中,模板是实现泛型编程的核心机制,它允许我们编写与类型无关的代码,极大地提高了代码的复用性。然而,模板的编译过程与普通代码有很大不同,理解其编译...

1100

【C++模板与泛型编程】实例化

用户12001910

在 C++ 模板编程中,"实例化"(Instantiation)是连接模板定义与具体类型 / 值的桥梁。当我们编写一个模板函数或类时,编译器并不会立即生成代码,...

1100

【C++进阶】表达式:从基础到实践(C/C++差异深度解析)

用户12001910

在编程领域,C++ 作为 C 语言的超集,不仅继承了 C 语言的精髓,还引入了诸多新特性。表达式作为编程中的基础构建块,在两种语言中既有相似之处,也有显著的区别...

1500

【C++进阶】函数:深度解析 C++ 函数的 12 大进化特性

用户12001910

inline关键字只是向编译器提出一个请求,编译器可以选择忽略这个请求。因此,即使使用了inline关键字,也不能保证函数一定会被内联展开。

1100

【C++进阶】深入探索类型转换

用户12001910

隐式类型转换是编译器在编译阶段自动进行的类型转换。当赋值运算符左右两侧类型不同,或者形参与实参类型不匹配,或者返回值类型与接收返回值类型不一致时,编译器会尝试进...

2000

【C语言标准库函数】取整与取余函数:ceil(), floor(), fmod(), 和 modf()

用户12001910

C语言标准库(C89及后续标准)在math.h头文件中提供了这四个用于数值处理的核心函数,它们虽同属“数值调整”范畴,但分工明确:ceil()与floor()专...

3000

【C语言标准库函数】三角函数

用户12001910

C 标准库并未规定三角函数的具体实现方式,但主流编译器(GCC、Clang、MSVC)均采用 高效算法 + 精度优化 策略,平衡计算速度与结果准确性。以下通过伪...

1300

【C语言标准库函数】指数与对数函数:exp(), log(), log10()

用户12001910

exp()、log()、log10()的实际实现依赖于编译器和硬件平台(如x86的FPU指令),通常采用精度高、效率优的近似算法(如泰勒级数展开、牛顿迭代法、C...

1300

【C语言高级特性】预处理指令(二)

用户12001910

详细介绍:#error 指令用于在编译时生成一个错误消息,并导致编译过程立即停止。这通常用于检查编译时的条件,如果条件不满足,则阻止编译。

1700

《数字图像处理》第 8 章-图像压缩

啊阿狸不会拉杆

        图像压缩是数字图像处理领域的核心技术之一,小到手机拍照存储、微信发图,大到视频监控、卫星图像传输,都离不开图像压缩技术的支撑。本文将系统讲解图像...

1500

Serde的零成本抽象设计:序列化框架的工程艺术

心疼你的一切

但零成本不意味着完全没有代价。Serde 的编译期代码生成会增加编译时间,特别是对于大型项目。我观察到,含有大量 Serde 派生的模块可能会使编译时间增加 2...

1000

Rust 复合类型深度解析:数组的艺术与实践

心疼你的一切

这种设计带来了深远的影响。首先,数组的大小在编译期就完全确定,编译器可以在栈上为其分配精确的内存空间,无需任何运行时开销。其次,所有的越界检查都可以在编译期或通...

1800

嵌入式 C 编程必备(6):宏定义与typedef的深入对比与应用

用户12001910

宏定义还可以与条件编译指令结合使用,以实现代码的条件编译。条件编译允许开发者根据特定的条件(如是否定义了某个宏)来选择性地编译代码的一部分。对于调试、测试不同版...

4410

【C语言高级特性】预处理指令(一)

用户12001910

3. 条件编译:通过 #define 定义的宏,可以在预处理阶段控制代码的编译,实现条件编译。示例:

3210
领券