gpt4 book ai didi

c - 如果我们增加函数指针会发生什么

转载 作者:太空狗 更新时间:2023-10-29 16:53:15 24 4
gpt4 key购买 nike

递增整数指针会将地址增加整数的大小。如果我们增加一个函数指针会发生什么?

最佳答案

正如 void * 指针和指向不完整类型的指针一样,不允许对函数指针进行算术运算。

例如,关于加法运算符的 C99 §6.5.6 说:

For addition, either both operands shall have arithmetic type, or one operand shall be a pointer to an object type and the other shall have integer type. (Incrementing is equivalent to adding 1.)

函数类型不是对象类型,因此提供指向函数的指针作为 + 运算符的操作数违反了此约束。


作为 C 语言的扩展,GCC 编译器允许对指向函数的指针(以及指向 void 的指针)进行算术运算。它实现这一点就好像指向的对象的大小为 1。请注意,在符合标准的模式下,它会针对此类代码发出警告。

关于c - 如果我们增加函数指针会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13152037/

24 4 0
文章推荐: angular - 在 Angular2 RC4 中,如何将组件添加到预编译数组?
文章推荐: python - pylint 无法识别某些标准库
文章推荐: angular - 为什么 Angular2(点击)事件没有在
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com