将非整数值赋给C中的整数变量

时间:2014-11-15 14:39:06

标签: c gnu

我指的是GNU c教程它说整数变量赋值非整数值会产生编译时错误究竟是什么错误,任何一个例子? 我试过了

int a ='A';

int a = 2.323;

一切都很好

还有什么可以证明这句话的合理性?

1 个答案:

答案 0 :(得分:2)

在某些情况下,正在进行一些转换。例如,您可以在gcc中使用-Wconversion来警告隐式转换。

(见Why assignment of double to int does not trigger gcc warnings?

一个无法编译的例子是

struct account {
   int account_number;
   char *first_name;
   char *last_name;
   float balance;
};

struct account s;

int a=s;//breaks

例如,错误消息在MSVC100中。

  

错误C2440:'初始化':无法从'account'转换为'int'

     

没有可以执行此操作的用户定义转换运算符   转换,或者不能调用运算符