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")