• 创建数据段
 //创建数据段
#pragma data_seg("fangfangdata")
int my_data_seg = ;
#pragma data_seg()
  • 与数据段连接,实现数据通信,分享

     //实现数据通信,分享
    #pragma comment(linker,"/SECTION:cgwdata,RWS")
  • 测试,用数据段使程序只能打开一次
     if (my_data_seg > )
    {
    printf("程序只能启动一个");
    MessageBoxA(, "no", "no", );
    return;
    }
    my_data_seg++;

  • 限定函数作用域

     #pragma  deprecated(run1,run2,run3)//限定函数作用域
  • 用法示例
     #include<stdio.h>
    #include<stdlib.h> void run1()
    { }
    void run2()
    { }
    void run3()
    { } void main()
    { run1();
    run2();
    run3();
    #pragma deprecated(run1,run2,run3)//限定函数作用域
    run1();
    run2();
    run3(); }

  • 设置自定义函数为内联函数

     #pragma intrinsic(run1,run2) //设置为内联函数
  • 设置系统函数为内联函数
     #pragma intrinsic(memset, strlen) //设置定定义函数,系统函数 为内联函数
  • 取消内联函数
     #pragma  funciton(run1)//取消内联函数
  • 用法示例
 #include<stdio.h>
#include <stdlib.h>
#include<string.h>
void run1()
{
puts("");
}
void run2()
{
puts("");
}
#pragma intrinsic(run1,run2) //设置为内联函数 #pragma intrinsic(memset, strlen) //设置定定义函数,系统函数 为内联函数
void main()
{
run1(); run2(); #pragma funciton(run1)//取消内联函数
getchar();
}
  • 设置内联的深度,开启内联或者禁止内联,自动开启内联,加快代码速度...

     #pragma inline_depth(4)//设置内联的深度
    #pragma inline_recuresion(on) //on off //开启内联或者禁止内联
    #pragma auto_inline(on)//自动开启内联,加快代码速度
    #pragma hdrstop("1.pch")
    #pragma check_stack(on)//off自动检查栈 //g全局优化,s,t// 代码体积与速度 y框架指针
    #pragma optimize("g" ,on)//代码优化

  • 常量字符串分配到run函数所在的代码  ,声明一个字符串分配到函数的所在,函数无法定义

     #include <stdio.h>
    #include<stdlib.h>
    void run();
    void run1()
    { }
    //常量字符串分配到run函数所在的代码 ,声明一个字符串分配到函数的所在,函数无法定义
    #pragma alloc_text("mysection",run) void main()
    {
    char *p = "mysection";
    printf("%s", p);
    run1(); getchar(); }

  • #pragma push_macro pop_macro
  • 用法示例
     //Y 的宏进栈,保存原来的宏,仍然生效
    #pragma push_macro("Y") //Y=80生效
    #define Y 80 //Y 的宏出栈,取消Y的生效,让原来的Y生效
    #pragma pop_macro("Y")

83.#pragma详解的更多相关文章

  1. #pragma详解

    在#Pragma是预处理指令它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作.#pragma指令对每个编译器给出了一个方法,在保持与C和C ++语言完全兼容的情况下,给出主机或操作系统专有 ...

  2. 91.#pragma 详解

    #pragma 输出信息#pragma message #include<stdio.h> #pragma message("这里是测试1") #define X86 ...

  3. #pragma 预处理指令详解

    源地址:http://blog.csdn.net/jx_kingwei/article/details/367312 #pragma  预处理指令详解              在所有的预处理指令中, ...

  4. pragma comment的使用 pragma预处理指令详解

    pragma comment的使用 pragma预处理指令详解   #pragma comment( comment-type [,"commentstring"] ) 该宏放置一 ...

  5. pragma指令详解(转载)

    #pragma comment( comment-type [,"commentstring"] ) 该宏放置一个注释到对象文件或者可执行文件.comment-type是一个预定义 ...

  6. ScrollView详解

    创建方式 1:StoryBoard/Xib 这里StoarBoard就不多说,直接拖就可以,说太多没意思,如果连这个都不会我只能先给你跪了! 2:代码: 1 2 3 CGRect bounds = [ ...

  7. JNI详解---从不懂到理解

    转载:https://blog.csdn.net/hui12581/article/details/44832651 Chap1:JNI完全手册... 3 Chap2:JNI-百度百科... 11 C ...

  8. iOS百度地图简单使用详解

    iOS百度地图简单使用详解 百度地图 iOS SDK是一套基于iOS 5.0及以上版本设备的应用程序接口,不仅提供展示地图的基本接口,还提供POI检索.路径规划.地图标注.离线地图.定位.周边雷达等丰 ...

  9. [转]keil使用详解

    第一节 系统概述 Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上.结构性.可读性.可维护性上有明显的优势,因而易学易用.用过 ...

随机推荐

  1. sql中使用正则查询

  2. Thinkpad Access Connections实现快速的在各种网络间进行切换

    Thinkpad Access Connections快速的在各种网络间进行切换 因为工作的原因要经常在多个无线或有线之间切换,每次要切换到不同的固定IP地址的网络更是一种折磨,换一次就要从新输入一次 ...

  3. 在Ubuntu14.04中安装Py3和切换Py2和Py3环境

    前几天小编给大家分享了如何安装Ubuntu14.04系统,感兴趣的小伙伴可以戳这篇文章:手把手教你在VMware虚拟机中安装Ubuntu14.04系统.今天小编给大家分享一下在Ubuntu14.04系 ...

  4. 比JLRoutes更强大更好用的iOS开源路由框架—FFRouter

    目前iOS常用路由框架是JLRouter.HHRouter.MGJRouter. 但是这些路由库都各有不足,首先是JLRouter,用不到的功能繁多,而且基于遍历查找URL,效率低下.HHRouter ...

  5. K-近邻算法学习

    # -- coding: utf-8 -- from numpy import * import operator def createDataSet(): group = array([[1.0,1 ...

  6. IT痴汉的工作现状41-亲历招投标

    2015年9月3日早7点,复兴门外大街已是车水马龙.伟仔早早的从东直门赶到这里.呼吸着首都特有的雾气,回味着昨晚与齐天的那一顿簋街麻小,想象着今天的大场面,心中不免有一丝紧张. 今天是个重要的日子,是 ...

  7. HDU 4405 概率期望DP

    有 0到 n 个格子.掷骰子走路,求出到终点的数学期望,有飞行的路线. dp[i] 存储在i位置走到终点的期望. 转移方程dp[i]=(dp[i+1] ----> dp[i+6])/6+1; 有 ...

  8. .Net数据操作案例

    Interface using System.Collections.Generic; using Ddd.Core.Domain.Customers; namespace Ddd.Services. ...

  9. 阿里云Redis使用规范

    一.键值设计 1.key名设计 (1)[建议]: 可读性和可管理性 以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔,比如业务名:表名:id ugc:video:1 (2)[建议]: 简洁性 ...

  10. 75.《nodejs开发指南》express4.x版-微博案例完整实现

    转自:https://blog.csdn.net/cgwcgw_/article/details/39317587 完整代码下载 https://github.com/haishangfeie/wei ...