回 帖 发 新 帖 刷新版面

主题:请教高手关于一个结构体的问题

在结构体里的函数名可以与它的变量名相同吗?比如下面的HuffNode:
typedef struct HuffNode {
    BYTE val;
    struct HuffNode *left;
    struct HuffNode *right;
}HuffNode, *HuffTree;
而在大部分的结构体定义里都不应该是相同的,而且有一次我听我的老师说是不可以相同的,当我在看数据结构的时候,却发现了有函数名和变量名相同的的例子,
如下面的Chunck:
typedef struct Chunck{
char ch[CHUNCKSIZE];
struct Chunck *next;
}Ckunck;
上面的这种定义类型与下面的标准类型有什么区别吗?:
typedef struct {
        TagType tag;
        DataType data;
}TokenType;
请高手指教;也可以qq:7991136告诉我,不胜感激!

回复列表 (共1个回复)

沙发

typedef的我也不清楚,还没学到那.

首先,那个不叫函数名而是结构体类形,当然,你可以把指向函数的类形给它,但它还是类形名.

其次,应该是不可以的.
例如说int型.  你有看见过int int(前者指类形,后者指变量名) 的吗?
如果可以同名, 那么计算机怎么分别那个时侯是指其类形的,那个时侯是指变量的?
如果通逻辑手段设置也可以,不过我觉得C语言发明者不会这么走弯路.
我质疑是书里为了简便起见才那样写的.

我来回复

您尚未登录,请登录后再回复。点此登录或注册