【未完待续】
1、
typename TTypes<T>::ConstTensor gradients
TTypes<T>::ConstTensor 是一种类型,由于里面T是一种待定的typename,因此需要使用它进行定义变量时候需要加个typename
2、
c++ 关键字nullptr
用法类似于NULL
3、
不定参数使用:
int sum(int i,...)
{
int count;//参数个数
int ra;
int inst;
va_list markr;
va_start(markr, i);//获取地址
ra = (*(int *)((int)markr - 8));//获得栈顶返回值
inst = (*(int *)(*(int *)((int)markr - 8)));//获取指令
count = ((inst&0xff0000)>>16)/4;//得到参数个数
cout << "参数个数是:" << count << endl;
va_end(markr);//释放
va_list arg_ptr;
va_start(arg_ptr, i);
int* first;
first = &i;
int m;
m =* first;//首先把第一个参数加上
int j=0;
while (1)
{
if(j >= (count-1))
break;
m+=va_arg(arg_ptr, int);
//这里 va_arg(arg_ptr, int)是从第二个参数开始递加返回
j++;
}
va_end (arg_ptr);
return m;
}
4、
ANSI C标准中几个标准预定义宏:
__LINE__:在源代码中插入当前源代码行号;
__FILE__:在源文件中插入当前源文件名;
__DATE__:在源文件中插入当前的编译日期
__TIME__:在源文件中插入当前编译时间;
__STDC__:当要求程序严格遵循ANSI C标准时该标识被赋值为1;
__cplusplus:当编写C++程序时该标识符被定义。