![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux-c
文章平均质量分 55
近水楼台
热爱嵌入式开发,追求一站式开发。
展开
-
命名法则总结
一、匈牙利命名法: 广泛应用于象Microsoft Windows这样的环境中。 Windows 编程中用到的变量(还包括宏)的命名规则匈牙利命名法,这种命名技术是由一位能干的 Microsoft 程序员查尔斯·西蒙尼(Charles Simonyi) 提出的。 匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。这些符号可以多个同时使用,顺序是先m_(成员变量),再指针,再简单数据类型,再其他。例如:m_lpszSt原创 2010-12-09 23:38:00 · 322 阅读 · 0 评论 -
大小端问题
前言:一直没有总结大小端的问题,今天借这个机会把大小端的问题总结下1 、概念 小端:低字节存放在内存的低地址段,高字节存放在内存的高地址段。 大端:高字节存放在内存的低地址段,低字节存放在内存的高地址段。2、出现这两种模式的原因 采用大端方式进行数据存放符合人类的正常思维,而采用小端方式进行数据存放利于计算机处理。但是到目前为止,采用大端或原创 2012-01-02 16:52:01 · 467 阅读 · 0 评论 -
c语言与嵌入式c中的volatile
1、首先明确一点的是: 集成开发环境IDE会自动优化程序,以提高程序的效率。2、问题常出现在: 如果产生一个中断而在中断中恰好改变了该变量的值(改变的是存储在内存单元里的值),那么此时我们的目的很明确就是想改变他的值使程序继续执行改变后的值,但这时的情况就和我们想像的不一样了,而是直接从CPU寄存器直接读取该变量,读的是原来的值,所以这时就会产生错误原创 2011-03-19 15:38:00 · 244 阅读 · 0 评论 -
sizeof
时间:2011年9月20号 23:30 目的:对 sizeof 做一个总结心得:阅历、本质、理解-------------------------------------------------------------------------华丽的分割线-----原创 2011-09-21 00:03:17 · 390 阅读 · 0 评论 -
关于内存中的文字常量区
文字常量区,在之前的一篇关于堆栈的文章中有所提及,今天在重点说一下文字常量区,在该区内存放常量字符串,为什么这么做了,就是节省内存资源,将所有的非静态常量都放置在该区域内,且该区域是共享的。 String是一个特殊的包装类数据。可以用: String *str = n转载 2011-08-17 11:11:36 · 111 阅读 · 0 评论 -
预编译指令集
#define 定义一个预处理宏#undef 取消宏的定义#include 包含文件命令#include_next 与#include相似, 但它有着特殊的用途#if 编译预处理中的条件命令, 相当于C语法中的if语句#ifdef 判断某个宏是否被定义, 若已定义, 执行随后的语句#ifndef 与#ifdef相反, 判原创 2011-04-22 19:17:00 · 393 阅读 · 0 评论 -
C Primer Plus及C总结(不断完善)
(一)概述(二)c语言概述(三)数据和c(四)字符串和格式化输入/输出(五)运算符、表达式和语句(六)c控制语句:循环(七)c控制语句:分支和跳转(八)字符输入/输出和输入确认(九)函数(十)数组和指针(十一)字符串和字符串函数(十二)存储类、链接和内存管理(十三)文件输入/输出(十四)结构和其他数据形式(十五)位操作(十六)c预处理器和c库(十原创 2011-02-12 18:20:00 · 237 阅读 · 0 评论 -
感悟
昨天又把c给复习了遍,准备大学期间一学期复习一遍,一学期看一本有关c的好书,也把在linux下c的编译环境和和调试工具等也复习熟练了一遍,感觉要不断的熟练才会成为一种习惯。原创 2011-01-27 00:45:00 · 185 阅读 · 0 评论 -
C/C++堆、栈及静态数据区详解 (转载)
五大内存分区在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。自由存储区,就是那些由malloc等分配的内存块,他和堆是十分相似的,不过它是用free来结束自己的生命的。全局/静转载 2011-01-16 21:08:00 · 571 阅读 · 0 评论 -
c语言变量总结
变量是C语言最基础也是最核心的概念,C的变量比较复杂,这里做个总结,希望对学习C的兄弟们有帮助。 一、认识变量 变量字面含义是表示一个可变的数据,数据有各种各样的类型,变量的类型指定了变量所能表示的数据类型。 从存储角度认识变量的本质,举例来说:char c = 'x';这个语句定义了一个char变量c,变量的值为字母120(字母x的ASCII码值为120),这个变量存储在计算机的某块内存区域,其存储单元的地址(编号)假设为0x1101。变量名c实质就是内存单元地址0x1101的一个符号,c代表的内存地址原创 2010-11-14 14:23:00 · 598 阅读 · 0 评论 -
typedef定义数组类型时的语法
对数组进行typedef时注意语法:typedef char Line[81]; //Line是char[81] (而不是说char是line[81])Line text, secondline;getline(text);typedef int mat4by4[4][4]; //4*4的二维数组mat4by4 mymat;可以象下面这样隐藏指针语法: typedef char * pstr; int mystrcmp(pstr, pstr); 这里将带我们到达第一个 typed转载 2010-11-10 19:16:00 · 425 阅读 · 0 评论 -
静态变量
静态变量的类型说明符是static。 静态变量当然是属于静态存储方式,但是属于静态存储方式的量不一定就是静态变量, 例如外部变量虽属于静态存储方式,但不一定是静态变量,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量。 对于自动变量,它属于动态存储方式。 但是也可以用static定义它为静态自动变量,或称静态局部变量,从而成为静态存储方式。 由此看来,一个变量可由static进行再说明,并改变其原有的存储方式。静态局部变量定义 在局部变量的说明前再加上static说明符就构成静态局原创 2010-11-14 14:16:00 · 256 阅读 · 0 评论 -
生成可执行文件过程
C语言编译全过程 编译的概念:编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。 编译的完整过程:C源程序-->预编译处理(.c)-->编译、优化程序(.s、.asm)-->汇编程序(.obj、.o、.a、.ko)-->链接程序(.exe、.elf、.axf等)1. 编译预处理 读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理伪指令主要包括以下转载 2010-10-29 00:15:00 · 4007 阅读 · 0 评论 -
define、typedef、const、typedef struct 用法详解
一、typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像: typedef int INT; typedef int ARRAY[10]; typedef (int*) pINT; typedef可以增强程序的可读性,以及标识符的灵活性,但它也有“非直观性”等缺点。 二、#define的用法 #define为一宏定义语句,通常用它来定义常量(包括无参量与带参量),以及用来实现那些“表面似和善、背后一长串”的宏,原创 2010-10-29 18:13:00 · 2182 阅读 · 0 评论 -
malloc和free
需要包含头文件:#include 'stdlib.h'函数声明(函数原型):void *malloc(int size);说明:malloc 向系统申请分配指定size个字节的内存空间。返回类型是 void* 类型。void* 表示未确定类型的指针。C,C++规定,void* 类型可以强制转换为任何其它类型的指针。从函数声明上可以看出。malloc 和 new 至少有两个不同:new 返回指定类型的指针,并且可以自动计算所需要大小。比如:int *p;p = new int; //返回类型为int* 类型(转载 2010-10-29 12:35:00 · 198 阅读 · 0 评论 -
结构体的字节对齐
对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。比如有些架构的CPU在访问 一个没有进行对齐的变量的时候会发生错误,那么在这种架构下编程必须保证字节对齐.其他平台可能没有这种情况,但是最常见的是如果不按照适合其平台要求对 数据存放进行对齐,会在存取效率上带来损失。比如有些平台每次读都是从偶地址开始,如果一个int型(假设为32位系统)如果存放在偶地址开始的地方,那 么一个读周期就可以读出这32bit,而如果存放在奇地址开始的地方,就需要2原创 2010-10-29 10:36:00 · 261 阅读 · 0 评论 -
指针
c语言指针总结(很全面^^)2007-04-13 11:28指针说白了就是地址。指针变量就是用来存放指针(地址)的变量。1. 变量的指针和指向变量的指针变量读起来很拗口,说白了就是变量的地址和用来存放变量地址的地址变量。因为一个变量在编译的时候系统要为它分配一个地址,假如再用一个变量来存放这个地址,那么这个变量就叫做指向变量的指针变量,也就是用来存放变量地址的这么一个变量。所谓"指向"就是指存放××的地址,如指向变量的指针变量,"指向"就是指用来存放变量的地址,再如指向数组的指针变量,"指向"就是指存放数组转载 2010-10-28 23:37:00 · 491 阅读 · 0 评论 -
枚举类型
1. 枚举的定义枚举类型定义的一般形式为: enum 枚举名{ 枚举值表 };在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。例如: 该枚举名为weekday,枚举值共有7个,即一周中的七天。凡被说明为weekday类型变量的取值只能是七天中的某一天。2. 枚举变量的说明如同结构和联合一样,枚举变量也可用不同的方式说明,即先定义后说明,同时定义说明或直接说明。设有变量a,b,c被说明为上述的weekday,可采用下述任一种方式:enum weekday{ sun,mou,tue,wed原创 2010-12-11 17:10:00 · 196 阅读 · 0 评论 -
再总结字节对齐问题
时间:2011年4月19日 目的:理解结构体的字节对齐原因以及如何计算结构体所占内存大小心得: 踏踏实实做人,认人真真做事。 ---------------------------------------------------------华丽的分割线----------------------------------------------------首先明确一些基本概念:原创 2011-04-19 17:30:00 · 287 阅读 · 0 评论