了解 C 中的静态变量声明/初始化

2023-12-04

我的项目中只有一个名为 test.c 的文件;如果我不定义“TRUE”,下面的代码将无法编译。我用的是vc.我只是想了解这种行为。请阐明这方面的情况。

#ifdef TRUE
static int a; 
static int a = 1; 
#else 
static int a = 1; 
static int a; 
#endif 

int main (void) 
{ 
    printf("%d\n", a);
    return 0; 
}
-----------------------
#ifdef TRUE     // both ok
int a; 
int a = 1; 
#else           // both ok
int a = 1; 
int a; 
#endif

int main (void) 
{ 
    printf("%d\n", a);
    return 0; 
}

这是因为定义变量后就无法声明它。但是,您可以在声明变量后定义它。

#ifdef TRUE
static int a; //Declaring variable a
static int a = 1; //define variable a
#else 
static int a = 1; //define variable a
static int a; //Error! a is already defined so you can not declare it
#endif 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

了解 C 中的静态变量声明/初始化 的相关文章

随机推荐

  • 活动未延伸至横向切口下方

    在我的活动中 我使用以下代码打开 关闭全屏 我所说的全屏是指隐藏 显示状态栏 该问题发生在具有切口 有摄像头的地方 且状态栏可见且处于横向状态的设备上 当状态栏隐藏或 和处于纵向时它会延伸 if aStatus Hide getWindow
  • Bash 脚本让用户从列表中选择或输入自己的

    我有一个简单的脚本 我想列出一些预先填充的选项 或者让用户输入一个与构建相关的数字 这就是我目前所拥有的 read p Please select from the list below or enter the build number
  • Dapper 源代码 - 这会正确处理我的连接吗?

    查看 Dappers QueryAsync 方法的源代码 SqlMapper Async cs private static async Task
  • iOS 如何通过宏检测iPhone X、iPhone 6 plus、iPhone 6、iPhone 5、iPhone 4?

    如何通过宏检测设备型号 我使用过类似的东西 但模拟器上的结果总是 IS IPHONE 5 define IS IPAD UI USER INTERFACE IDIOM UIUserInterfaceIdiomPad define IS IP
  • 包含宏的 C++ 方法声明

    我正在使用 QuickFAST 库 在检查它时我发现了这个类声明 但我似乎并没有真正理解 我的意思是类名之前的宏名称是什么意思 class QuickFAST Export Message public FieldSet 我还发现了这个声明
  • Swift 动态变量名称取决于值

    我有一个像这样的变量名称列表 BankHelper swift static var va 1 atm ol li Silahkan kunjungi ATM terdekat li li Pilih Menu strong Transak
  • 使用内联汇编修改数组元素

    有没有办法通过内联汇编修改特定的数组元素 int move 2 我正在寻求改变move 0 and move 1 in asm 我是汇编编码的新手 主要坚持C 可能有一个非常简单的答案 到目前为止我已经尝试移动move 1 到寄存器中 将我
  • 单击链接不应触发家长 onclick 事件

    我有以下代码 div some text a href asd php click a div 当有人点击链接时 就会触发 javaschipt 事件 我希望该事件仅在有人单击文本或 div 容器内的空白区域时触发 如果有人点击链接则不会
  • 使用 cx-freeze 时没有名为 bs4 的模块

    我正在尝试使用以下命令将我的 python 脚本转换为适用于 Windows 的独立可执行文件CX 冻结 为此 我刚刚输入了这个命令cxfreeze PlaylistDownloader py PlaylistDownloader py 是
  • 如何在具有枚举字段的实体上使用 JPA CriteriaQuery 填充 DTO 类字符串字段?

    我正在使用 JPA Criteria API 在查询多选中我想检索枚举属性 而不是枚举本身 这是我的查询 final CriteriaQuery
  • Swift + didUpdateUserLocation 没有被调用

    我无法打电话MKMapView委托方法didUpdateUserLocation 到目前为止我做了什么 添加框架MapKit framwork在项目中 在视图控制器中导入框架import MapKit line 在plist文件中添加密钥
  • Jersey 在尝试返回 XML 响应时返回 500

    我正在尝试使用基于 Jersey 2 12 创建自己的 RESTful WS 应用程序this文章 我想根据从 url 传递的 id 返回一个类的 XML 表示形式 但是 在尝试从以下任一位置尝试时 我收到了 500 响应代码高级休息客户端
  • 如何获取 XMLHttpRequest 中的响应 url?

    有一个页面 url 我通过 XMLHttpRequest 请求它 但是我没有从请求的 url 中得到响应 它将请求定向到另一个页面 请求 gt page php 得到回复 gt 定向页面 php 问题是如何获取响应 url 示例中的dire
  • 多个 CSS 计数器未按预期工作

    我正在尝试在 html 表中创建多个级别的计数器 但这并不像我预期的那样工作 第一个计数器工作正常 但接下来的计数器不工作 不知何故 计数器没有增加或重置错误 代码
  • Vue3 国际化与 I18n 和脚本设置 (vite)

    我正在尝试将我的 Vue3 带有 Vite 设置 项目国际化 intlify vite plugin vue i18n我正在使用
  • 为什么setup.py在安装之前会扫描命名空间的内容?

    我使用带有 setuptools 的命名空间在两个不同的存储库中分发相同的模块 目标是得到mymodule one and mymodule two安装后 知道内容one and two来自不同的仓库 但看起来像两个setup py互相扫内
  • 将 System.Double 表示为可排序字符串的最佳方式是什么?

    在所有基础类型都是字符串的数据格式中 数字类型必须转换为可以按字母顺序比较的标准化字符串格式 例如 一个short对于价值27可以表示为00027如果没有负面影响 代表一个的最好方式是什么double作为字符串 就我而言 我可以忽略负数 但
  • 背景附件:固定;不使用背景位置

    我做了一个codepen解释我的问题 当用户滚动时 蓝色图像应跟随用户滚动 蓝色图像应粘贴在旁边部分的另一侧 右侧为左侧 左侧为右侧 pb 是这样的 background attachment fixed 这个CSS规则不起作用 backg
  • EnableAutoRejoiningGroups 在 SignalR 1.0 中消失

    看起来 GlobalHost HubPipeline EnableAutoRejoiningGroups 已在 SignalR 1 0 最终版本中消失 然而 发行说明中没有提及它的去向 也没有任何线索如何恢复此功能 有人知道发生了什么事吗
  • 了解 C 中的静态变量声明/初始化

    我的项目中只有一个名为 test c 的文件 如果我不定义 TRUE 下面的代码将无法编译 我用的是vc 我只是想了解这种行为 请阐明这方面的情况 ifdef TRUE static int a static int a 1 else st