- 主题:一个关于C99很奇怪的问题
我先申明了一个结构体A
struct A
{
int a1;
int a2;
};
然后弄了个指针指向这个结构A,
typedef *struct A p_A;
然后又申明了个结构体B,其中有一个元素是结构体A的指针p_A
struct B
{
int b1;
int b2;
p_A b3;
};
然后奇怪的事情就发生了,如果我申明一个结构体B的数组,叫ARRAY_B[2]好了,没问题
如果我申明一个变量(非数组),就叫struct B variable_B;
问题来了,编译器给我一个warnning,说我结构体元素过多?
这是什么情况?
--
修改:dismoon FROM 117.63.134.*
FROM 117.63.134.*
仅仅是一个警告,程序可以跑通,可以编译通过。
所以就是有疑问,这是编译器什么机制,给且如果我申明一个数组,仅仅包含一个元素,也是可以没警告的
也就是不声明数组就给警告
--
FROM 117.63.134.*
又神奇的报警消失了.....
--
FROM 117.63.134.*
typedef *struct A p_A;
这个是啥
--
FROM 61.149.167.*
写错了,脑子发昏,把指针在申明的阶段就申明了
别问我在说什么,我脑子发昏,现在也不知道自己在说什么
【 在 leadu 的大作中提到: 】
: typedef *struct A p_A;
: 这个是啥
--
FROM 117.63.134.*
问题解决了,结论是我脑子浑了
--
FROM 117.63.134.*
冒昧的问一句,兄弟你发量怎么样?
【 在 dismoon 的大作中提到: 】
: 写错了,脑子发昏,把指针在申明的阶段就申明了
: 别问我在说什么,我脑子发昏,现在也不知道自己在说什么
:
--
FROM 61.149.167.*
一点都没秃,所以我不强
【 在 leadu 的大作中提到: 】
: 冒昧的问一句,兄弟你发量怎么样?
:
--
FROM 117.63.134.*
真不赖

【 在 dismoon 的大作中提到: 】
: 一点都没秃,所以我不强
:
--
FROM 61.149.167.*
你改成这样试试
typedef struct {
int a, b;
} s1_t;
struct {
float c, d;
s1_t* ps1;
} s2;
【 在 dismoon (伐开心要包包) 的大作中提到: 】
: 我先申明了一个结构体A
: struct A
: {
: ...................
--
FROM 106.121.182.*