![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【 C 】
文章平均质量分 69
风雨也无晴
专注于嵌入式开发、ARM、DSP、FPGA、算法研究。
喜欢研究网络安全、电子技术。希望结交志同道合的好朋友。
展开
-
c语言内存对齐
一、什么是对齐,以及为什么要对齐: 1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 2. 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只转载 2013-05-21 09:10:47 · 923 阅读 · 0 评论 -
C语言标准I/O_fread/fwrite
好久不用,对C语言文件操作都有点生疏了,由于工作需要,稍稍的复习一下;下面的程序用C语言的fread/fwrite来读取hex文件,并且拷贝,目的是拷贝后的文件需要和源文件不能有任何差异;原创 2014-12-09 19:19:43 · 1324 阅读 · 0 评论 -
十个最值得阅读学习的C开源项目代码
开源世界有许多优秀的开源项目,我选取其中十个最优秀的、最轻量级的C语言的项目,希望可以为C语言开发人员提供参考。1. WebbenchWebbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,转载 2015-01-10 12:43:25 · 1124 阅读 · 0 评论 -
printf返回值是什么?
一个有意思的问题,很少有人会关注原创 2014-08-08 17:34:11 · 10374 阅读 · 5 评论 -
高内聚与低耦合实现小记
总所周知,实际软件开发中要实现高内聚、低耦合的设计原则。c语言和c++不同,c语言面向过程、c++面向对象。原创 2014-07-05 11:08:58 · 4149 阅读 · 16 评论 -
C语言的代码内存布局详解
一个程序本质上都是由 BSS 段、data段、text段三个组成的。这样的概念在当前的计算机程序设计中是很重要的一个基本概念,而且在嵌入式系统的设计中也非常重要,牵涉到嵌入式系统运行时的内存大小分配,存储单元占用空间大小的问题。BSS段:在采用段式内存管理的架构中,BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Starte原创 2014-06-15 10:13:56 · 2391 阅读 · 0 评论 -
读《C专家编程》总结(一)
1.数组下标从0开始而不是1开始!即a[0]——a[99],千万不要出现a[100]的情况。2.auto关键字是个就是个摆设,除非你想在定义的时候使代码对齐好看点如:register int a = 1; auto int b = 2; static c = 3;3.表达式中数组名可以"看做"是指针但记住,数组名并不是指针,有很多区别。4.不允许函数原创 2013-11-18 20:39:13 · 1184 阅读 · 0 评论 -
C语言Memset()与memcpy()总结
功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作 用 法: void *memset(void *s, char ch, unsigned n); 程序例: #include #include #include int main(void)原创 2013-11-19 19:54:00 · 18867 阅读 · 2 评论 -
读《C专家编程》总结(二)
这不是BUG,而是语言特性1.malloc使用注意:malloc(strlen(str)) ——错误;malloc(strlen(str) + 1) ——正确;因为字符串以'\0' 结尾,strlen函数只计算字符串的有效字符个数;2.break语句跳出的最近一层循环 int i=2; static int j =0; int a[10]原创 2013-11-19 13:03:38 · 1061 阅读 · 0 评论 -
大端模式和小端模式
大端模式,是指数据的高位,保存在内存的低地址中,而数据的低位,保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;小端模式,是指数据的高位保存在内存的高地址中,而数 据的低位保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。原创 2014-04-07 16:41:24 · 1296 阅读 · 0 评论 -
c语言编译过程
C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程。链接是把目标文件、操作系统的启动代码和用到的库文件进行组织形成最终生成可执行代码的过程。过程图解如下: 从图上可以看到,整个代码的编译过程分为编译和链接两个过程,编译对应图中的大括转载 2014-04-06 13:20:53 · 1029 阅读 · 0 评论 -
extern "C"用法总结
经常看到如下代码:#ifdef _cplusplusextern "C" {#endif#include "XXX.h"#ifdef _cplusplus}#endif解释:extern "C"的作用是,告诉C++编译器,下面的代码按照C的方式进行编译,说白了,不要对这些函数进行名字重整(function name manglin转载 2015-03-12 20:01:49 · 11136 阅读 · 1 评论