
c
和猫妹学Python
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
常用宏定义
1防止一个头文件被重复包含 #ifndef COMDEF_H #define COMDEF_H //头文件内容 #endif 文件开头处#define DEBUG,在代码中加调试代码#ifdef DEBUG{}#endif2重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。 typedef unsigned char转载 2012-02-20 19:15:34 · 651 阅读 · 0 评论 -
字节对齐#pragma pack
实验代码:#include "stdafx.h" #pragma pack(1)typedef struct _TEST_{ unsignedchar m1; unsignedshort m2; unsignedint m4; }TEST;#pragma pack() TEST t1;原创 2014-04-17 10:17:57 · 722 阅读 · 0 评论 -
C语言宏定义##连接符和#符的使用
C语言中如何使用宏C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。下面对常遇到的宏的使用问题做了简单总结。关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量 通过替换后在其左右各加上一个双引号。比如下面代码中的宏:#define WARN_IF(EXP)转载 2014-06-23 11:40:39 · 480 阅读 · 0 评论 -
_attribute_((packed))
_attribute_((packed))1. __attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法。这个功能是跟操作系统没关系,跟编译器有关,gcc编译器不是紧凑模式的,我在windows下,用vc的编译器也不是紧凑的,用tc的编译器就是紧凑的。例如:在TC下:struct my{ cha转载 2014-10-20 16:14:08 · 434 阅读 · 0 评论 -
__attribute__((weak))
情况是这样的,碰到一个棘手的问题:我们不确定外部模块是否提供一个函数func,但是我们不得不用这个函数,即自己模块的代码必须用到func函数:extern int func(void);...................int a = func();if( a > .....){..........}............我们不知道func函数是否被定义了转载 2014-10-20 16:08:45 · 935 阅读 · 0 评论 -
C语言测试:想成为嵌入式程序员应知道的0x10个基本问题(转)
1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情:1) #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值转载 2012-04-26 17:53:27 · 1369 阅读 · 0 评论 -
谈谈协程和C语言的协程
原帖见(或者百度上搜索该标题):http://www.yeolar.com/note/2013/02/17/coroutines/这里将代码备份供自己使用:先给看一段代码:#include typedef struct{ int i; int num; int state;} task;#define crBegin(state) \转载 2015-09-24 17:56:33 · 2773 阅读 · 0 评论 -
protothread学习
转自:http://blog.youkuaiyun.com/finewind/article/details/6186291这里讲代码备份供参考:#ifndef PC_H#define PC_Htypedef unsigned int INT16U;struct pt{ INT16U lc; };#define PT_THREAD_WAITING 0#defi转载 2015-09-24 17:59:23 · 701 阅读 · 0 评论 -
简谈二维码(QRcode)的C语言生成,在单片机平台的实现
转载自:https://blog.youkuaiyun.com/qq_21475601/article/details/71480028二维码又称QR Code,QR全称Quick Response,越来越多的在生活中出现,作为一种标识,以其廉价简单方便的使用很快普及到生活的角角落落。像衣、食、住、行、社交等等,就连发这篇博客时,登录优快云也是扫码登录,确实好用。而且这种增长趋势还在持续。以往我们所...转载 2018-12-04 13:11:23 · 1919 阅读 · 0 评论 -
二维码(QRcode)容量的计算与版本
转载自:https://www.cnblogs.com/feng9exe/p/5995055.html 4.版本信息:即二维码的规格,QR码符号共有40种规格的矩阵(一般为黑白色),从21x21(版本1),到177x177(版本40),每一版本符号比前一版本每边增加4个模块。177 = 21+(40-1)+4 = 21 +156.http://blog.youkuaiyun.com/acnt3...转载 2018-12-04 13:39:26 · 19630 阅读 · 0 评论 -
QR码生成原理(一)
转载自:https://blog.youkuaiyun.com/dekko/article/details/6121899一、什么是QR码QR码属于矩阵式二维码中的一个种类,由DENSO(日本电装)公司开发,由JIS和ISO将其标准化。QR码的样子其实在很多场合已经能够被看到了,我这还是贴个图展示一下:这个图如果被正确解码,应该看到我的名字和邮箱。二、QR码的特点说到QR码的特点,...转载 2018-12-04 13:48:14 · 4244 阅读 · 0 评论 -
miniLZO无损压缩库评估
转载自:http://www.voidcn.com/article/p-snvltjpu-bnz.html一、应用场合 在网络上传输大批量数据的时候,网络传输介质选择好之后网络的传输速度就是固定的了,(如100Mbit的以太网实际测量的传输速度大概在10MByte/秒左右)而要想在固定的时间内传输更多的容量的数据,最常见的解决方案就是在传输之前通过一定的算法把数据的容量压缩小,然后...转载 2018-12-12 15:21:43 · 969 阅读 · 0 评论 -
数据压缩算法LZO
转载自:https://blog.youkuaiyun.com/suzy_niu/article/details/74189859一、什么是LZO LZO是致力于解压速度的一种数据压缩算法,LZO 是 Lempel-Ziv-Oberhumer 的缩写。这个算法是无损算法,参考实现程序是线程安全的。实现它的一个自由软件工具是lzop。最初的库是用 ANSI C 编写、并且遵从 GNU通用公共许可证发布...转载 2018-12-12 13:50:19 · 2650 阅读 · 0 评论 -
__attribute__((packed))的作用
__attribute__((packed))的作用 在结构体变量的声明中,经常可以看到__attribute__((packed))修饰符。这是做什么用的呢?请看一下程序:转载 2014-07-03 22:54:48 · 747 阅读 · 0 评论 -
<c语言深度解剖>第二章符号笔记
2.1 注释int/**/i;结果okchar* s = "abcdefgh //hijklmn";结果okIs it a\valid comment?结果okin/**/t j;结果error//y=x/*p;y=x/ *p;y=x/(*p);结果error结果ok结果ok2.2 接续符和转义符这是一条合法的\单行注视原创 2014-04-30 17:42:18 · 590 阅读 · 0 评论 -
C语言main函数的参数含义及输入
转载自己问题重现:C语言main函数有两个参数,怎么在VC6.0下给main函数传递参数,以及各参数的意义。带有参数的main()函数头格式为: void main(int argc, char * argv[]) 或void main(int argc, char转载 2014-06-23 19:01:57 · 1301 阅读 · 0 评论 -
vc6 printf重定向输出到文件
原帖地址:http://blog.youkuaiyun.com/benkaoya/article/details/5935626测试环境:Microsoft Visual C++ 6.0,Win32 Application或Win32 Console Application均可。[cpp] view plaincopy#include "stdafx.h" #include转载 2012-04-12 12:31:54 · 4207 阅读 · 0 评论 -
一道指针相关题目的跟踪
测试1int *p=(int *)0x12ff7c;*p=NULL;p=NULL;为什么在执行完第2条代码之后,发现p的值变为0x00000000(这有点匪夷所思吧?)int i=10;int *p=(int *)0x12ff7c;*p=NULL;p=NULL;这样子的话,p的值就没有变,p所指向的内存的值成了0(这样P的值就不变了?)测试2//翻译 2014-04-30 10:16:18 · 714 阅读 · 0 评论 -
宏定义注意事项
3.1.3注释优先与预处理展看#define BSC//BSC tesg3.14 用define宏定义表达式#define SEC_A_YEAR (60*60*24*365)UL#define SQR(x) ((x)*(x))#define SUM(x) ((x)+(x))#define EMPTYprintf("SUM(X)");#define M 100翻译 2014-04-29 17:31:54 · 1998 阅读 · 0 评论 -
malloc、free与内存碎片
测试1int *p=(int *)0x12ff7c;*p=NULL;p=NULL;为什么在执行完第2条代码之后,发现p的值变为0x00000000(这有点匪夷所思吧?)int i=10;int *p=(int *)0x12ff7c;*p=NULL;p=NULL;这样子的话,p的值就没有变,p所指向的内存的值成了0(这样P的值就不变了?)测试2//转载 2014-04-30 10:39:13 · 1873 阅读 · 0 评论 -
typedef 函数指针的用法
typedef int (*MYFUN)(int, int); 上面的例子定义MYFUN 是一个函数指针,函数类型是带两个int 参数,返回一个int 在分析这种形式的定义的时候可以用下面的方法: 先去掉typedef 和别名,剩下的就是原变量的类型. 去掉typedef和MYFUN以后就剩:int (*)(int, int)下面的三个例子都是在vc6上编译转载 2013-11-29 09:42:36 · 711 阅读 · 0 评论 -
C语言运算符优先级与结合方向
一 C语言运算符优先级 详细列表2008年10月24日 11:58 4,085 次阅读 发表评论阅读评论文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。恩,问这个问题的人太多了,懒得继续回答,直接贴上来自己看。。。优先级运算符名称或含义使用转载 2014-04-16 17:43:41 · 955 阅读 · 0 评论 -
判断栈的增长方向
如何判断栈的增长方向?对于一个用惯了i386系列机器的人来说,这似乎是一个无聊的问题,因为栈就是从高地址向低地址增长。不过,显然这不是这个问题的目的,既然把这个问题拿出来,问的就不只是i386系列的机器,跨硬件平台是这个问题的首先要考虑到的因素。在一个物质极大丰富的年代,除非无路可退,否则我们坚决不会使用汇编去解决问题,而对于这种有系统编程味道的问题,C是一个不错的选择。那接下来的转载 2014-05-16 16:32:51 · 714 阅读 · 0 评论 -
堆和栈的区别
一、预备知识—程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(st转载 2014-05-16 16:47:06 · 461 阅读 · 0 评论 -
几个关于嵌入式C的面试问题【转】
预处理器(Preprocessor)1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达式的值,因转载 2014-05-13 17:37:22 · 655 阅读 · 0 评论 -
LZO基本介绍与调试总结
转载自:https://blog.youkuaiyun.com/qq_27918645/article/details/70336368一、LZO介绍LZO 是一个用 ANSI C 语言编写的无损压缩库。他能够提供非常快速的压缩和解压功能。解压并不需要内存的支持。即使使用非常大的压缩比例进行缓慢压缩出的数据,依然能够非常快速的解压。LZO遵循GNU 的GPL 使用许可。LZO 非常适合进行数据...转载 2018-12-12 13:58:52 · 6791 阅读 · 2 评论