C语言
文章平均质量分 81
C语言程序相关
zsky_01
嵌入式软件工程师,专注于 RTOS、Linux、C/C++。【一起学嵌入式】
展开
-
嵌入式 C 语言合集,基础到进阶
嵌入式软件开发,C语言是必须要掌握好的。嵌入式C语言变量、数组、指针初始化的多种操作。全面讲解 C 语言的结构体(struct)【进阶】嵌入式 C 语言代码优化的一些措施。嵌入式 C 语言实现面向对象编程的三大特性。如何搞定嵌入式 C 语言中的全局变量问题。内存拷贝函数 memcpy 的原理及实现。嵌入式设备驱动程序构建"库"的一些思想。嵌入式 C 语言宏定义的常用方法总结。GCC对C语言扩展语法归纳详解(一)GCC对C语言扩展语法归纳详解(二)GCC对C语言扩展语法归纳详解(三)原创 2024-02-05 23:14:51 · 408 阅读 · 0 评论 -
C语言结构体大小 你算对了吗
C 语言中 struct 声明创建一个数据类型(结构体),能将不同类型的对象聚合到一个对象中,用名字来引用结构体的各个组成部分。结构体的所有组成部分都存放在一段连续的内存中。如果创建一个结构体,其实际占用的内存空间大小是多少呢?示例代码如下:struct S{ int i; char c; int j;};要正确计算结构体大小,首先需要了解数据对齐的原理。数据对齐许多计算机系统对基本的数据类型的合法地址做了一些限制。要求某种类型对象的地址必须是某个值(通常为2、4、8)的倍数。这种对齐原创 2022-01-14 09:36:12 · 280 阅读 · 0 评论 -
C程序中与内存有关的常见错误
与内存有关的错误属于那种最令人惊恐的错误。在时间和空间上,经常在距离错误源一段距离之后才表现出来。将错误的数据写到错误的位置,你的程序可能在最终失败之前运行了一段时间。下面列举并分析与内存有关的几种错误:1、间接引用坏指针如果间接引用一个指向没有任何意义的数据的指针,那么操作系统会以段异常终止程序。如果向只读区域中写入数据,这些区域会以保护异常终止这个程序。一个常见的经典示例是 scanf 错误。这个函数用处是从标准输入读入一个整数到一个变量,正确的写法是传递给 scanf 一个格式串和变量的地址:原创 2021-12-27 17:45:49 · 733 阅读 · 0 评论 -
深入理解 C 语言的 hello world
第一个程序 Hello World,你真的懂吗?原创 2021-12-23 13:01:26 · 7267 阅读 · 0 评论 -
C语言编程之局部性
什么是局部性一个编写良好的计算机程序常常具有良好的局部性(locality)。即,他们倾向于引用临近与其最近引用过的数据项的数据项,或者最近引用过的数据项本身。这种倾向性,被称为局部性原理。局部性通常有两种不同的形式:时间局部性具有良好时间局部性的程序中,被引用过一次的内存位置很可能在不远的将来再被多次引用。空间局部性具有良好空间局部性的程序中,如果一个内存位置被引用了一次,那么程序很可能在不远的将来引用附近的一个内存位置。局部性原理的应用一般来说,有良好局部性的程序比局部性差的程序原创 2021-12-14 10:27:13 · 1214 阅读 · 0 评论 -
C语言指针加1的原理,真的很难吗
问题背景最近有小伙伴对于C语言中指针的运算有点疑问:指针变量加1之后,到底向后偏移了几个字节呢?示例代码如下,这段代码运行在32位CPU平台上:#include<stdio.h>#pragma pack(1)struct tree{ int height; int age; char tag;};#pragma pack()int main(){ char buffer[512] = {0}; struct tree *t_ptr = NULL; char原创 2021-10-25 13:06:40 · 2106 阅读 · 1 评论