- 创建数据段
1 //创建数据段 2 #pragma data_seg("fangfangdata") 3 int my_data_seg = 0; 4 #pragma data_seg()
- 与数据段连接,实现数据通信,分享
1 //实现数据通信,分享 2 #pragma comment(linker,"/SECTION:cgwdata,RWS")
- 测试,用数据段使程序只能打开一次
1 if (my_data_seg > 0) 2 { 3 printf("程序只能启动一个"); 4 MessageBoxA(0, "no", "no", 0); 5 return; 6 } 7 my_data_seg++;
- 限定函数作用域
1 #pragma deprecated(run1,run2,run3)//限定函数作用域
- 用法示例
1 #include<stdio.h> 2 #include<stdlib.h> 3 4 void run1() 5 { 6 7 } 8 void run2() 9 { 10 11 } 12 void run3() 13 { 14 15 } 16 17 void main() 18 { 19 20 run1(); 21 run2(); 22 run3(); 23 #pragma deprecated(run1,run2,run3)//限定函数作用域 24 run1(); 25 run2(); 26 run3(); 27 28 }
- 设置自定义函数为内联函数
1 #pragma intrinsic(run1,run2) //设置为内联函数
- 设置系统函数为内联函数
1 #pragma intrinsic(memset, strlen) //设置定定义函数,系统函数 为内联函数
- 取消内联函数
1 #pragma funciton(run1)//取消内联函数
- 用法示例
1 #include<stdio.h> 2 #include <stdlib.h> 3 #include<string.h> 4 void run1() 5 { 6 puts("123"); 7 } 8 void run2() 9 { 10 puts("123456"); 11 } 12 #pragma intrinsic(run1,run2) //设置为内联函数 13 14 #pragma intrinsic(memset, strlen) //设置定定义函数,系统函数 为内联函数 15 void main() 16 { 17 run1(); 18 19 run2(); 20 21 #pragma funciton(run1)//取消内联函数 22 getchar(); 23 }
- 设置内联的深度,开启内联或者禁止内联,自动开启内联,加快代码速度...
1 #pragma inline_depth(4)//设置内联的深度 2 #pragma inline_recuresion(on) //on off //开启内联或者禁止内联 3 #pragma auto_inline(on)//自动开启内联,加快代码速度 4 #pragma hdrstop("1.pch") 5 #pragma check_stack(on)//off自动检查栈 6 7 //g全局优化,s,t// 代码体积与速度 y框架指针 8 #pragma optimize("g" ,on)//代码优化
- 常量字符串分配到run函数所在的代码 ,声明一个字符串分配到函数的所在,函数无法定义
1 #include <stdio.h> 2 #include<stdlib.h> 3 void run(); 4 void run1() 5 { 6 7 } 8 //常量字符串分配到run函数所在的代码 ,声明一个字符串分配到函数的所在,函数无法定义 9 #pragma alloc_text("mysection",run) 10 11 void main() 12 { 13 char *p = "mysection"; 14 printf("%s", p); 15 run1(); 16 17 getchar(); 18 19 }
- #pragma push_macro pop_macro
- 用法示例
1 //Y 的宏进栈,保存原来的宏,仍然生效 2 #pragma push_macro("Y") 3 4 //Y=80生效 5 #define Y 80 6 7 //Y 的宏出栈,取消Y的生效,让原来的Y生效 8 #pragma pop_macro("Y")