共 35 篇文章 |
|
typedef详解。typedef const int i;const typedef int i;int const typedef i;const int typedef i;int const typedef *t;另外,typedef不能和static等存储类型指示符同时使用,因为每个变量只能有一种存储类型,所以代码:typedef static int i;是非法的。第二种方法:typedef int (*pfunc)(int);第二种方法:typedef void (*pfuncParam)(void... 阅203 转0 评0 公众公开 12-07-18 22:31 |
看过了第一条,你一定对编译器的工作有了一定的了解,实际上编译器就是程序员与底层之间的一个转换层,它把一个高级语言代码转换为低级语言代码,一 个编译器完成的转换跨度越大,那么它也就会越复杂,因为程序员的工作都由他代为完成了。lea eax,[a];mov dword ptr[b],eax;就好比stack与 vector的关系,因此指针和引用的关系就好比线性表和栈... 阅77 转1 评0 公众公开 12-02-20 22:10 |
typedef struct !在申请node 的变量时,需要这样写,struct node n;(不用typedef的话必须这样定义变量)若用typedef,可以这样写,typedef struct node{}NODE; 。同理,“typedef struct node{} *pNODE;”中pNODE是struct node*的一个别名,表示指向结构体node类型的指针类型,“pNODE pnode;”当然在定义的时候可以省去node,typedef stru... 阅657 转1 评0 公众公开 12-02-13 10:17 |
__try __except.try-except入门。case EXCEPTION_FLT_DENORMAL_OPERAND :case EXCEPTION_FLT_DIVIDE_BY_ZERO :case EXCEPTION_FLT_INEXACT_RESULT :case EXCEPTION_FLT_INVALID_OPERATION :case EXCEPTION_FLT_OVERFLOW :case EXCEPTION_FLT_STACK_CHECK :case EXCEPTION_FLT_UNDERFLOW :printf("浮点数计算异常,错误代码:%x\n", c... 阅968 转2 评0 公众公开 12-02-07 14:15 |
assert?断言使用方法(转载)assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义: #include <assert.h> void assert( int expression ); assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息, 然后通过调用 abort 来终止程序运行。一个... 阅396 转1 评0 公众公开 12-02-07 12:21 |
assert断言的作用。assert((pvTo !// 使用断言 byte *pbTo = (byte *) pvTo; // 防止改变pvTo 的地址 byte *pbFrom = (byte *) pvFrom; // 防止改变pvFrom 的地址 while(size -- >0) *pbTo ++ = *pbFrom ++ ; return pvTo;}所以assert 不是函数,而是宏。如果程序在 assert 处终止了,并不是说含有该assert 的函数有错误... 阅4194 转5 评0 公众公开 12-02-07 11:46 |
3:获取省略号指定的参数在函数体中声明一个va_list,然后用va_start函数来获取参数列表中的参数,使用完毕后调用va_end()结束。va_arg返回参数列表中的当前参数并使argp指向参数列表中的下一个参数。printf("the %d th arg: %d\n",nArgCout,nArgValue); //输出各参数的值 nArgValue = va_arg(arg_ptr,int); ... 阅56 转0 评0 公众公开 12-02-07 10:17 |
阅806 转3 评0 公众公开 12-01-11 13:23 |
在许多时候,我们或许还希望这些格式控制符中用以指定长度信息的数字是动态的,而不是静态指定的,因为许多时候,程序要到运行时才会清楚到底需要取字符数组中的几个字符,这种动态的宽度/精度设置功能在sprintf的实现中也被考虑到了,sprintf 采用”*”来占用一个本来需要一个指定宽度或精度的常数数字的位置,同样,而实际的宽度或精度就可以... 阅344 转3 评0 公众公开 12-01-11 09:53 |
接着上面的讲,C为什么不支持函数重载呢?因为C的ABI定义了,函数的二进制符号是函数名前加下划线.比如int foo(int a); 和 void foo(char* a),他们生成的都是_foo这个符号,产生了歧义.链接的时候,有两个这样的二进制符号,该怎么选呢...呵呵那为什么C++可以呢?以为C++规定了二进制符号里面除了函数名称以外,还需要附加参数信息,例如_foo_i 和_foo_s... 阅156 转0 评0 公众公开 12-01-10 17:04 |