【发布时间】:2018-02-14 17:32:42
【问题描述】:
下面的代码给了我一个编译器警告
warning C4133: ':' : incompatible types - from 'YTYPE *' to 'XTYPE *'
但是,对我来说,expession 似乎还可以。有什么想法吗?
struct XTYPE {
int x;
long y;
};
struct YTYPE {
long y;
int x;
};
extern void *getSomething(void);
void Test(void)
{
int b= 0;
struct XTYPE *pX;
struct YTYPE *pY;
void * (*pfFoo)(void);
pfFoo= getSomething;
if (b ? (pX= (*pfFoo)()) // error
: (pY= (*pfFoo)()) )
{
;
}
if (b ? ((pX= (*pfFoo)())!=0) // no error
: ((pY= (*pfFoo)())!=0) )
{
;
}
}
【问题讨论】:
标签: c visual-studio ternary-operator