固有的不可移植的特征
2016-08-24 11:05
176 查看
编写可以容易从一个机器迁移到其它机器的低级程序是C程序设计语言的一个特点。将程序迁移到新机器的过程称为移植,故C程序是可移植的。为了支持低级编程,C语言定义了一些固有不可移植的特征,C++继承的其中一个是:链接指示(linkage directive)。
C++程序有时需要调用其它程序设计语言编写的函数,最常见的是C语言。其它语言编写的函数的名字必须声明,且必须指定返回类型和参数表。编译器按处理普通C++函数一样的方式检查对外部语言函数的调用,但一般产生不同的代码来调用这些函数。下面为头文件cstdlib中声明的一些C函数:
通过对函数定义使用链接指示,其它语言编写的程序可以使用C++函数。当编译器为该函数产生代码时,它将产生适用于指定语言的代码。链接指示支持的语言随编译器而异,如“Ada”、“FORTRAN”等。
Hunger:explicit-keyword enforces only explicit casts to be valid.
C++程序有时需要调用其它程序设计语言编写的函数,最常见的是C语言。其它语言编写的函数的名字必须声明,且必须指定返回类型和参数表。编译器按处理普通C++函数一样的方式检查对外部语言函数的调用,但一般产生不同的代码来调用这些函数。下面为头文件cstdlib中声明的一些C函数:
extern "C" size_t strlen(const char*); extern "C"{ int strcmp(const char*, const char*); char* strcat(char*, const char*) }链接指示有两种形式:单个的或复合的。通过将几个函数的声明放在链接指示之后的花括号内部,可以给它们设定相同的链接。将#include指令放在复合链接指示的花括号中时,假定头文件中声明的所有普通函数都是用链接指示的语言编写的。链接指示可以嵌套,故上述头文件包含带链接指示的函数的链接不受影响。链接指示不能出现在类定义或函数定义的内部,它必须出现在函数的第一次声明上。
通过对函数定义使用链接指示,其它语言编写的程序可以使用C++函数。当编译器为该函数产生代码时,它将产生适用于指定语言的代码。链接指示支持的语言随编译器而异,如“Ada”、“FORTRAN”等。
Hunger:explicit-keyword enforces only explicit casts to be valid.
相关文章推荐
- C++学习笔记二十六-固有的不可移植的特征
- C++ Primer 学习笔记_107_特殊工具与技术 --固有的不可移植的特征[上]
- Chapter 30.类成员指针、嵌套类、局部类、联合、固有不可移植特征
- C++ Primer 学习笔记_108(大结局!!!)_特殊工具与技术 --固有的不可移植的特征[下]
- 固有的不可移植的特征
- 固有的不可移植的特征之volatile限定符
- volatile 等C++中固有的不可移植特性
- 40、C++ Primer 4th笔记,特殊工具与技术,不可移植特征
- C++ Primer 笔记——固有的不可移植的特性
- 固有的不可移植的特性
- C++中不可移植的语言特性
- pathchk命令_Linux pathchk 命令用法详解:检查文件中不可移植的部分
- spring 事务特征、事务传播特征、事务隔离级别、 脏读、不可重复读、 幻觉读
- ORA-24777: 不允许使用不可移植的数据库链路
- 比ORA-24777: 我不使用不可移植数据库链接更郁闷的事情达成一致
- [企业管理]一种不可跟随的老板的特征
- 运行程序报“应用程序配置不正确”或者缺少运行库造成程序不可移植的问题
- 比ORA-24777: 不允许使用不可移植的数据库链路更让人郁闷的事情
- C++ Primer学习笔记——$24 C++中不可移植的语言特性
- [企业管理]一种不可跟随的老板的特征