其他语言

本类阅读TOP10

·基于Solaris 开发环境的整体构思
·使用AutoMake轻松生成Makefile
·BCB数据库图像保存技术
·GNU中的Makefile
·射频芯片nRF401天线设计的分析
·iframe 的自适应高度
·BCB之Socket通信
·软件企业如何实施CMM
·入门系列--OpenGL最简单的入门
·WIN95中日志钩子(JournalRecord Hook)的使用

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
c++语言程序设计-----学习笔记(3)

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

                

1 静态变量:

    局部变量将在运行线程达到其定义时进行初始化,如果有一个局部变量被声明为static,则只有唯一的一个静态对象用来表达该函数所有调用中的这个对象。(即:在调用static型的变量时只会存在一个该变量的副本,所以在此函数中改变了这个变量的话,那么在其他函数中的这个变量就同时的改变了),静态对象将只有在执行线程第一次到达它时初始化。

2 未确定数目的函数的参数:

    对有些函数而言,若我们没有办法确定其参数,则可以在参数表后用省略号(…)来结束,如:

       int printf (const char *p, )  ////stdio.h头文件里

    但一个良好的程序应该尽量避免用未确定数目的函数的参数,而应该用重载来考虑所有可能的情况。

      (我不明白怎么用自己定义的未确定参数数目的函数:有哪位能告诉我好吗?mailto:[email protected]

3 指向函数的指针:

    定义:通过取一个函数的地址而得到的指针。作用:可以在后面用于调用这个函数,如:

   void error (int s)

{

      printf(“%d” ,s );

}

void (*f) (int)&error;////定义一个指向一个参数类型为int,返回值类型为void的函数的指针,并把它指向error函数。

void g( )

{

   f( );    //通过f()调用error函数;

}

 在写法上,由于编译器知道f是一个指针,所以可以不写指针符:*,同理也可以不写取地址符:&;即:

    void (*f)(int)=&error; 

   void (*f)(int)=error      完全等价。

注意:在指向函数的指针声明中也需要给出参数类型,在给函数的指针赋值时也必须注意类型需要完全匹配。

 

4        宏:

宏在c++中不应该被使用。

宏的名字不能被重载,而且宏预处理器不能处理递归调用;

注意:

  在引用全局名字时一定要用作用域运算符 ::,而且在所以可能出现宏的参数的地方用括号括起来,原因:

以下是一个危险的宏:

   define square(a)   a*a;

void f()

{

   square(xx+2);   //被解释成: xx+2*xx+2即:xx+(2*xx)+2

}




相关文章

相关软件