Grammar
文章平均质量分 58
shaoyizhe2006
这个作者很懒,什么都没留下…
展开
-
十进制转二进制 C语言实现
#include void Ten2Two(int); int Ten2Two(float); void Ten2TwoInt(int number) { int reminder; reminder=number%2; number=number/2;原创 2012-12-25 15:35:21 · 906 阅读 · 0 评论 -
printf中va_list的实现
首先声明下面这个va_list的实现,只适用于32位的机器,像单片机这样int 是2Byte的不适合,但是原理是一样的。点击(此处)折叠或打开typedef char * va_list;#define _INTSIZEOF(n) ((sizeof(n)+sizeof(int)-1)&~(sizeof(int) - 1) )#define转载 2012-12-03 10:30:06 · 1794 阅读 · 0 评论 -
ifeq ifneq ifdef ifndef
条件语句中使用到了三个关键字:“ifeq”、“else”和“endif”。其中:1. “ifeq”表示条件语句的开始,并指定了一个比较条件(相等)。之后是用圆括号括包围的、使用逗号“,”分割的两个参数,和关键字“ifeq”用空格分开。参数中的变量引用在进行变量值比较时被展开。“ifeq”之后就是当条件满足make需要执行的,条件不满足时忽略。2. “else”之转载 2012-09-24 15:02:42 · 12744 阅读 · 1 评论 -
关于GCC的__attribute__(constructor)
转自:http://blog.chinaunix.net/uid-24512513-id-3195102.html今天写一个动态库,需要让动态库有一个类似于windows的DLLMain函数一样功能的函数,可惜发现Linux没有这样的功能,于是查阅了大量的资料,最后发现GCC的__attribute__属性设置可以将函数设置成类似于这样功能的函数:__attribute__((转载 2013-05-14 18:36:25 · 1159 阅读 · 0 评论 -
数组指针和指针数组的区别
数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。 p=a;转载 2013-05-03 18:35:43 · 485 阅读 · 0 评论 -
链表操作-创建、输出、删除,添加节点
/*============================================================= 目的:动态链表的综合操作 算法分析:1、构造第一个结构体作为头 2、以P2和P1为游码在结构体移动转载 2013-04-15 10:53:15 · 907 阅读 · 0 评论 -
va_list va_start() va_end()
va_list arg_ptr:定义一个指向个数可变的参数列表指针; va_start(arg_ptr, argN):使参数列表指针arg_ptr指向函数参数列表中的第一个可选参数,说明:argN是位于第一个可选参数之前的固定参数,(或者说,最后一个 固定参数;…之前的一个参数),函数参数列表中参数在内存中的顺序与函数声明时的顺序是一致的。如果有一va函数的声明是void va_te转载 2012-11-30 17:59:02 · 572 阅读 · 0 评论 -
C++项目中的extern "C" {}
C++项目中的extern "C" {}引言在用C++的项目源码中,经常会不可避免的会看到下面的代码:?123456789#ifdef __cplusplusextern"C"{#endif /*...*转载 2012-01-07 11:29:09 · 713 阅读 · 0 评论 -
两矩阵相乘
#include int main() { int x, y, z; int i, j, k; printf("input x,y,z!!\n"); scanf("%d%d%d",&x,&y,&z); int a[x][y], b[y][z], c[x][z]; printf("input a!!\n"); for(i=0;i<x;i++) { for(j=0;j<y;j++)原创 2012-12-25 14:35:06 · 607 阅读 · 0 评论