gcc对C语言的扩展:构造函数调用(Constructing…
2008-02-23 05:41:23来源:互联网 阅读 ()
您也能够在不知道一个函数的返回类型的情况下获得函数调用的返回结果,然后再返回这个结果(只要调用您所在函数的调用者能接收这个返回值的数据类型)。
Built-in Function: void * __builtin_apply_args ()
这个内建函数返回一个指向某些数据的指针,这数据描述了如何用传给当前函数的参数来执行一个函数调用。 这个函数会在栈中某个内存地址保存参数指针寄存器,struct结构地址和其他一些可能用于传递参数的寄存器的值, 然后这个函数返回这块内存的地址。
Built-in Function: void * __builtin_apply (void (*function)(), void *arguments, size_t size)
这个内建函数将用保存下来的参数的拷贝来调用function函数, 参数由arguments指针指向的地址和size表示的大小来表示。arguments指向的内容应该是__builtin_apply_args函数返回的地址,参数的尺寸size指定了栈数据的大小,用字节作为单位。这个函数返回一个指针,他指向function函数返回值的数据。返回值被保存在栈中分配的一段内存地址中。
计算出合理的size的值并不总是件容易的事情。size值被__builtin_apply函数用于计算argument指针指向内存去中被压入栈中的数据量的大小。
Built-in Function: void __builtin_return (void *result)
这个内建函数返回result所描述的返回值。result应该为__builtin_apply函数的返回值。
这里使用的几个函数都是以下划线打头的。 使用以下划线开头的名字来表示局部变量是为了避免和在表达式中取代a和b之类名字(如宏)的变量名冲突。最终我们期望设计一种新的声明语法形式--他允许我们声明那些作用域在其初始化后才开始的变量; 这是一种避免冲突的更为可靠的方法。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: 利用纯C 实现COM
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash