【问题标题】:why compiler give me error when i assign char variable to int variable in global scope? [duplicate]为什么当我在全局范围内将 char 变量分配给 int 变量时编译器会给我错误? [复制]
【发布时间】:2018-06-09 19:27:29
【问题描述】:

我有一个错误

初始化元素不是常量

当我在全局范围内初始化变量时 这是我的错误代码

char x = 65 ;
int c =  x ;
int main(void) {

    printf("%d",c); /* prints !!!Hello World!!! */
    return EXIT_SUCCESS;
}

但是当我 在 main 函数中初始化 int 变量它可以正常工作

char x = 65 ;
int main(void) {
    int c =  x ;
    printf("%d",c); /* prints !!!Hello World!!! */
    return EXIT_SUCCESS;
}

【问题讨论】:

    标签: c variables global


    【解决方案1】:

    全局变量的初始化器必须是编译时常量。另一个变量(甚至是const 变量)的值不是编译时常量。

    数字常量(或仅由数字常量组成的表达式)是编译时常量。

    【讨论】:

      猜你喜欢
      • 2012-06-19
      • 2023-01-09
      • 2021-10-15
      • 2017-09-15
      • 2013-01-10
      • 1970-01-01
      • 2023-03-21
      • 2016-05-26
      • 1970-01-01
      相关资源
      最近更新 更多