当我这样做时,代码工作正常:
#include <stdio.h>
void test( int a)
{
printf("a=%d\n",a);
}
int main()
{
test(10);
return 1;
}
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做
#include <stdio.h>
void test( auto int a) // Or static int a Or extern int a
{
printf("a=%d\n",a);
}
int main()
{
test(10);
return 1;
}
Run Code Online (Sandbox Code Playgroud)
它会产生错误,
错误:为参数'a'指定的存储类
为什么会出错?内部会发生什么(内存管理)?
但是当我这样做时,它没有任何错误地工作正常:
void test( register int a)
{
printf("a=%d\n",a);
}
Run Code Online (Sandbox Code Playgroud)
这是为什么?
我想知道32位和64位版本的Windows Os中虚拟内存的默认页面大小。例如:Linux(x86)的页面大小是4 Kb。
任何人都可以解释为什么这里的复制构造函数被调用两次?
class A
{
int i;
public:
A(){cout<<"IN constr"<<endl;};
A(int x):i(x) {};
A (A &a)
{
cout<<"in copy"<<endl;
i= a.i;
}
};
class MyClass {
A var;
public:
MyClass(A a):var(a) {
}
};
int main() {
A a1;
MyClass m(a1);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我运行代码时,put是:
IN constr
in copy
in copy
Run Code Online (Sandbox Code Playgroud)
我可以理解有一次它复制a到变量中var,但是当它第二次被调用时?
我正在某个项目中处理uc ATxmega128A1,但是作为ucontroller的初学者,我想知道关于ucs的此通道事件系统是什么。我引用了一个链接http://www.atmel.com/Images/doc8071.pdf,但没有得到它。