![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 91
阳光下的
这个作者很懒,什么都没留下…
展开
-
C语言宏定义函数的使用(定义单行和多行)
要写好C语言,漂亮的宏定义是非常重要的。宏定义可以帮助我们防止出错,提高代码的可移植性和可读性等。 在软件开发过程中,经常有一些常用或者通用的功能或者代码段,这些功能既可以写成函数,也可以封装成为宏定义。那么究竟是用函数好,还是宏定义好?这就要求我们对二者进行合理的取舍。 我们来看一个例子,比较两个数或者表达式大小,首先我们把它写成宏定义: #define MAX(转载 2014-02-25 21:17:38 · 33315 阅读 · 2 评论 -
测试你掌握C的程度
常量与变量正所谓静中有动,动中有静,常量与变量亦是如此,它们之前相互依赖,相互影响。关于常量与变量,很多朋友可能觉得没有什么好介绍的,它实在是太简单了,单从字面上看就知道什么意思?我想说的不是关于常量与变量的概念,而是其深入的实质。其实很多朋友在学到后面指针的时候经常会出现,段错误,晕指针(我对那些指针恐惧者的症状叫法),野指针等问题,都是因为对常量和变量的理解不够深入,基础理解不转载 2014-04-04 18:15:28 · 622 阅读 · 0 评论 -
深刻剖析经典面试题之一:堆和栈的区别
堆(heap)和栈(stack)的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。原创 2015-03-10 11:02:10 · 876 阅读 · 0 评论 -
跨平台考试
1 : 将整数小段模式转化为 大端模式 小端转大端 int function(int value) { char num1,num2,num3,num4; int data; num1 = value & 0x000000ff; num2 = value & 0x0000ff00; num3 = valu原创 2014-06-21 12:58:15 · 602 阅读 · 0 评论 -
大小端 问题
12,测试大小端bool IsBig_Endian(){ unsigned short test = 0x1234; if(*( (unsigned char*) &test ) == 0x12) return TRUE; else return FALSE;}//IsBig_Endian()原创 2014-06-21 16:41:56 · 709 阅读 · 0 评论 -
gcc 和 g++ 区别
gcc 和 g++ 都是 GNU 组织的编译器。 误区一: gcc 只能编译 C 代码,g++ 只能编译 C++ 代码 两者都可以,但是请注意: 1. 后缀为 .c 的,gcc 把它当作是 C 程序,而 g++ 当作是 C++ 程序; 后缀为.cpp的,两者都会认为是 C++程序; 注意: 虽然 C++ 是 C的超集原创 2014-06-21 16:07:00 · 566 阅读 · 0 评论 -
文件
文件文件的基本概念 所谓“文件”是指一组相关数据的有序集合。 这个数据集有一个名称,叫做文件名。 实际上在前面的各章中我们已经多次使用了文件,例如源程序文件、目标文件、可执行文件、库文件 (头文件)等。文件通常是驻留在外部介质(如磁盘等)上的, 在使用时才调入内存中来。从不同的角度可对文件作不同的分类。从用户的角度看,文件可分为普通文件和设备文件两种。 普通文件是指驻留在磁盘或原创 2014-05-06 10:50:28 · 595 阅读 · 0 评论 -
结构体内存对齐
一、内存对齐的原因大部分的参考资料都是如是说的:1、平台原因(移植原因):不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。2、性能原因:数据结构(尤其是栈)应该尽可能地在自然边界上对齐。原因在于,为了访问未对齐的内存,处理器需要作两次内存访问;而对齐的内存访问仅需要一次访问。二、对齐规则每个特定平台上的编译器原创 2014-05-05 21:10:28 · 571 阅读 · 0 评论 -
常量占内存吗
原创 2014-04-30 17:24:21 · 3015 阅读 · 0 评论 -
宏定义中的特殊参数(#、##、...和__VA_ARGS__)+二叉查找树
最近在android的某个代码的头文件中发现很多__VA_ARGS__,google一下.还是比较有用.附带其它宏定义参数,一起记录之.1. ...和__VA_ARGS__看看msdn上给得例子吧[cpp] view plaincopyprint?#include #define EMPTY #define CHECK1(x, ...) i转载 2015-11-28 14:08:07 · 3701 阅读 · 0 评论