c __declspec关键字详细用法(C __declspec keyword usage).doc

c __declspec关键字详细用法(C __declspec keyword usage).doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c __declspec关键字详细用法(C __declspec keyword usage)

c __declspec关键字详细用法(C __declspec keyword usage) 格式: _ _ declspec (DllImport) declarator _ _ declspec (dllexport) declarator 或对象. 将函数声明成 dllexport 就可以免去定义模块定义 (. DEF) 文件. Dllexport 代替了 _ _ Export 关键字. 与 # Pragma 的作用相同.用于指定函数的某个重载形式是不推荐的.当在程序中调用了被 deprecated 修饰的函数时 (deprecated) 分别用来从 导入函数 数据 DLL, DLL, 或对象以及从 中导出函数, 数据 或对象.相当于定义了 的接口 为它的客户 exe, DLL, DLL 或 被声明为 dllexport in C + + 函数导出时的函数名将会按照 C + + C + + 规则经过处理.如果要求不按照 规则进行名字处理, 请使用.de jitintrinsic: 格式: _ _ declspec (jitintrinsic) 用于标记一个函数或元素是 64 位通用语言运行时 (CLR).主要用于 Microsoft 提供的某些库中. 使用 jitintrinsic 会在函数签名中加入 modopt (isjitintrinsic Naked:). 格式: _ _ declspec (Naked) declarator 明、定义, 或者函数的声明. Noalias: 引用全局变量或第二层间接指针参数, 则编译器会生成中断应用程序的代码. In:: _ 格式 _ declspec (restrict) return _ (Type f); 此关键字仅用于 x86 系统, 多用于虚拟设备驱动.此关键字可以使编译器在生成代码时不包含任何注释或标记.仅可以对函数的定 仅适用于函数, 它指出该函数是半纯粹的函数.半纯粹的函数是指仅引用或修改局部变量、参数和第一层间接参数.它是对编译器 仅适用于返回指针的函数声明或定义, 如, CRT in malloc 函数: _ _ declspec (restrict) void * malloc (size t size 它告诉编译器该函 _); 其它的指针混淆.它为编译器提供执行编译器优化的更多信息.对于编译器来说, 最大的困难之一是确定哪些指针会与其它指针混 正确. Noinline: 能影响不大, 有必要将其声明为非内敛的.例如, 用于处理错误情况的函数. Noreturn: 之后的代码不可到达. 的话, 可以使用约定 _ _ declspec (noreturn) 来避免上述警告或者错误. 将一个期望返回的函数约定为 _ _ declspec (noreturn) 将导致未定义的行为. 在下面的这个例子中, Main 函数没有从 else 分支返回, 所以约定函数 fatal 为 _ _ declspec (noreturn) 来避免编译或警告信息. _ _ declspec (noreturn) extern void fatal () {} int main () {if (1) return 1; else if ( Return 0; 0) else (fatal);} nothrow: 格式: return type _ _ declspec (nothrow Convention) [CALL] function - name ([] 可用于函数声明.告诉编译器被声明的函数以及函数内部调用的其它函数都不会抛出异常 argument List). Novtable: 码大小. 译器很有帮助.有必要指出, 这是对编译器的一个承诺, 编译器并不对其进行验证.如果您的程序不恰当地使用 _ _ declspec (restr In 因为在类定义中定义的成员函数默认都是 inline, _ _ declspec (Naked) 用于显式指定类中的某个函数不需要 inline (内联).如果一 一个函数被 _ _ declspec (noreturn) 所修饰, 那么它的含义是告诉编译器, 这个函数不会返回, 其结果是让编译器知道被修饰为 _ _ d 如果编译器发现一个函数有无返回值的代码分支, 编译器将会报 c4715 警告, 或者 c2202 错误信息.如果这个代码分支是因为函 可用于任何类声明中, 但最好只用于纯接口类, 即类本身从不实例化.此关键字的声明将阻止编译器对构造和析构函数的 in vfptr 如果试图实例化一个用 _ _ declspec (novtable) 声明的类然后访问类中成员, 则会在运行时产生访问错误 (Access violation

您可能关注的文档

文档评论(0)

f8r9t5c + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档