|
1
36
不,但它们可以包含函数 指针。 如果您的意图是在C中进行某种形式的多态性,那么可以这样做:
这个
然后,调用函数,类似于:
这样,一种类型就可以用于TCP、SNA、RS232甚至载波pidgeons,接口完全相同。 |
|
|
2
5
使用“数据类型”编辑清除歧义
不在C。
来自ISO C99标准第6.7.2.1节。
|
|
|
3
0
在C语言中,允许结构包含数据值而不是函数指针。不允许在C中使用。但是当与gcc一起检查时,下面的操作确实很好。
所以,我很困惑。。。 |
|
|
4
0
没关系。 在linux内核代码中,您会发现许多结构包含函数。 例如:
|
|
|
5
0
是的,它可以声明一个函数,而函数定义是不允许的,它应该是函数指针。 它基于C99标记结构。 洛凯什五世 |
|
|
6
0
不,你不能。结构不能包含函数的声明,但可以包含函数的定义。结构只能包含数据类型、指针、指向不同函数的指针。可以将指针指向函数,然后从结构访问。
|
|
|
7
-1
它们可以,但在通常的C编程中没有固有的优势。 在C语言中,所有函数都在全局空间中,因此将它们塞进函数中不会隐藏任何信息。paxdiablo的例子是一种将函数组织到结构中的方法,但是您必须看到无论如何都必须取消对每个函数的引用才能使用它。 C的标准组织结构是 头中的接口和源中的实现。 libc就是这样做的,几乎所有的C库都是这样做的。 Moder C编译器允许您在同一个源文件中定义和实现函数,甚至在头文件中实现静态函数。不幸的是,这会导致一些混乱的地方,你可以得到一些不寻常的解决方案,如把函数塞进结构,只有源代码的程序没有头,等等。 这样就失去了将接口与实现分离的优势。 |
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 1 年前 |
|
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 1 年前 |
|
|
Bobby · 复合字面值总是左值吗? 1 年前 |
|
9-Pin · C: 嵌套结构的堆栈内存分配 1 年前 |