C中可能的数据类型有哪些 除了void,int,float,char double,long,struct
我正在编写一个正则表达式(脚本)来检测函数体的启动。 我需要返回类型,以便我可以通过将返回类型与函数名称连接起来来获取函数体
答案 0 :(得分:3)
C函数可以返回以下任何内容:
struct ...
或union ...
的值)enum ...
的值)在任何级别都有可选的const和/或volatile限定条件。当然也允许任何此类型的Typedef名称。
值得注意的是,C函数不能返回函数类型的值,也不能返回数组类型的值(尽管它可以分别返回包含数组的函数指针和结构)。
答案 1 :(得分:1)
任何(完整的)对象类型或void
(数组类型除外)都可以由函数返回。通过struct
和enum
关键字,程序员可以创建新类型,因此可能有无数种类型的函数可以在C中返回。
答案 2 :(得分:0)
函数可以返回void
或完整的非数组对象类型,包括用户定义的类型。
具体而言,禁止以下内容:
typedef int f(); // function type
typedef int a[10]; // array type
struct X; // incomplete, non-array object type
// f foo1(); // Error, function returning function
// a foo2(); // Error, function returning array
// struct X foo3(){} // Error, attempting to define function with incomplete
// return type
struct X foo4(); // OK, can *declare* a function with incomplete return type
答案 3 :(得分:0)
除数组外,函数可以返回任何类型的值。
如果在结构体内,则可以返回数组。
struct innerarray {
double values[100];
};
struct innerarray fx(void) {
struct innerarray retval;
for (int k = 0; k < 100; k++) retval.values[k] = k;
return retval;
}