register 关键字请求编译器将局部变量储存于寄存器中
1、C++中还坚持使用register关键字
2、C++编译器有自己的优化方式
C语言中无法获得register 变量的地址
C++中可以获得register 变量的地址
1) 在标准C语言中
int f() 表示形参可以有任意多个int f(void) 表示不接收任何形参2) 在C++中
两者没有区别,都表示不接收任何形参
#include <stdio.h> int g_v; //int g_v; int main(int argc, char *argv[]) { printf("Begin...\n"); int c = 0; for(int i=1; i<=3; i++) { for(int j=1; j<=3; j++) { c += i * j; } } printf("c = %d\n", c); register int a = 0; printf("&a = %p\n", &a); printf("End...\n"); return 0; }
#include <stdio.h> struct Student { const char* name; int age; }; f(i) { printf("i = %d\n", i); } g() { return 5; } int main(int argc, char *argv[]) { Student s1 = {"Delphi", 30}; Student s2 = {"Tang", 30}; f(10); printf("g() = %d\n", g(1,2,3,4,5)); return 0; }