Bug 的个人资料封印的九尾照片日志列表更多 ![]() | 帮助 |
|
2008/9/9 argc和argv#include<stdio.h> main (int argc,char *argv[]) { int I = 0; printf("\n命令行中可执行文件名为:%s \n",argv[0]); printf("\n总共有%d个参数:\n",argc); while((argc--)>0) printf("%s \n",argv[I++]); } main只有这两个参数。argc表示参数(包括程序名)个数,argv是一个指针数组,其中每个指针指向一个字符串,即一个参数,因此argv[0]就是程序名,argv[1]就是第一个参数 比如 #./sort 1 2 则argc=3,argv[0]是"sort",argv[1]是"1",argv[2]是"2"。 2008/9/8 memset用法详解(转)
C/C++中枚举类型(enum) 如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型。之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来。 enum box{pencil,pen};//这里你就定义了一个枚举类型的变量叫box,这个枚举变量内含有两个元素也称枚举元素在这里是pencil和pen,分别表示铅笔和钢笔。 这里要说一下,如果你想定义两个具有同样特性枚举类型的变量那么你可以用如下的两种方式进行定义! enum box{pencil,pen}; 再有一种就是在声明的时候同时定义。 enum {pencil,pen}box,box2; //在声明的同时进行定义! 枚举变量中的枚举元素系统是按照常量来处理的,故叫枚举常量,他们是不能进行普通的算术赋值的,(pencil=1;)这样的写发是错误的,但是你可以在声明的时候进行赋值操作! enum box{pencil=1,pen=2}; 但是这里要特别注意的一点是,如果你不进行元素赋值操作那么元素将会被系统自动从0开始自动递增的进行赋值操作,说到自动赋值,如果你只定义了第一个那么系统将对下一个元素进行前一个元素的值加1操作,例如 enum box{pencil=3,pen};//这里pen就是4系统将自动进行pen=4的定义赋值操作! 前面说了那么多,下面给出一个完整的例子大家可以通过以下的代码的学习进行更完整的学习! #include <iostream> 看到这里要最后说一个问题,就是枚举变量中的枚举元素(或者叫枚举常量)在特殊情况下是会被自动提升为算术类型的! #include <iostream> assert() 函数用法assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义: assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息, 请看下面的程序清单badptr.c: int main( void ) return 0; [root@localhost error_process]# gcc badptr.c 使用assert的缺点是,频繁的调用会极大的影响程序的性能,增加额外的开销。 用法总结与注意事项: int resetBufferSize(int nNewSize) ... 2)每个assert只检验一个条件,因为同时检验多个条件时,如果断言失败,无法直观的判断是哪个条件失败 不好: assert(nOffset>=0 && nOffset+nSize<=m_nInfomationSize); 好: assert(nOffset >= 0);
2008/9/3 Doppler Shift(多普勒频移)“多普勒效应”是由奥地利物理学家Chrjstian.Doppler首先发现并加以研究而得名的,其内容为:由于波源和接收者之间存在着相互运动而造成接收者接收到的频率与波源发出的频率之间发生变化。 多普勒频移(Doppler Shift)是多普勒效应在无线电领域的一种体现。其定义为:由于发射机和接收机间的相对运动,接收机接收到的信号频率将与发射机发出的信号频率之间产生一个差值,该差值就是Doppler Shift。 设发射机发出的信号频率为(f发),接收机接收到的信号频率为(f收),发射机与接收机之间的相对运动速度为V,C为电磁波在自由空间的传播速度:3×10(8次方)米/秒 则有如下公式:f收=(c±v)/λ=f发±v/λ=f发±f移;(f移)即为多普勒频移,(f移)的大小取决于信号波长λ及相对运动速度V。对某发射机,λ是恒定的,因此相对运动速度V决定了频移的幅度。 |
|
|