小知识FAQ整理

[1]函数声明或定义中__p的含义是什么?
eg: int ftp_put __P(argv1,argv2);
编译器(预处理器)在某个头文件中判断,如果是一个 ANSI 编译器,将 __P (x) 定义为 x,如果是一个不支持“带原型函数声明”的编译器,将 __P (x) 定义为 () .所以,如果你的编译器不支持“带原型函数声明” :
int ftp_put __P(argv1,argv2);   将被替换为:   int ftp_put ();
比如一个函数 int f (int, int); 有些老编译器不支持这种声明,要写成 int f();
那个 __P 就是用来干这个活的。


[2]koenig  lookup规则是什么?
eg:
namespace A{
    class B{
    };
    void f(const B&){ }
}
int main()
{
    A::B b;
    f(b); //OK. lookup finds A::f()

如果某个函数的一个或多个参数型别乃定义于函数所处的namespace中,那么你可以不必为该函数指定namespace,此规则称为koenig lookup.
Koeing 查找也称为 ADL (Argument Dependent Lookup )
只用于非受限名称,非受限名称定义:是除了受限名称以外的^_^
受限名称:显式使用:: 或者 -> . 等操作符号访问的名称为受限名称.
再如:
 class A
  {
      friend void Fun(){ }  //不能直接在外面调用,名字找不到.
      friend void Fun( A p ) {} //OK,通过参数可以找得到Fun的定义.
  };

int main()
{
 Fun();  //虽然在dev-C++上可以通过,但VC2003不行,这是不标准的.
        //同理如果把A改成一个模板类那么这种调用在dev下通不过.而有相应参数就行.
A a;
Fun(a);  //OK,dev-C++/VC均可.
 
}


[3]宏定义中的#,##,#@问题.

#define PR(X) cout << #X;
PR(a)等价于:  cout <<  "a";

#define PR(X) cout << ##aX;
PR(5)等价于:  cout <<  a5;

#define PR(X) cout << #@X;
PR(a)等价于:  cout <<  'a';

宏定义里面:
#叫做引用文字
##叫做粘贴



weixin151云匹面粉直供微信小程序+springboot后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值