`
james23dier
  • 浏览: 531142 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

linux 不支持while(true)吗?

阅读更多

今天闲来无事,竟然写了个while(true),然而结果也非常让我吃惊。结果竟然编译错误。。下面是我的源代码:

#include<stdio.h>

int main(){
        while ( true ){
                break;
        }
        return 0;
}

 采用gcc4.1.2编译,错误信息如下所示:

gcc test_true.c
test_true.c: In function 'main':
test_true.c:4: error: 'true' undeclared (first use in this function)
test_true.c:4: error: (Each undeclared identifier is reported only once
test_true.c:4: error: for each function it appears in.)
也就是说while循环把true当做了变量,而不是内置关键字。。

 

 

经过今天查询得知:和我采用的gcc编译器有关。gcc不支持,但是g++支持。这是因为true并非c99标准关键字。c99中的bool类型采用关键字_Bool声明,而且形如_Bool a = true;这种语句使用gcc不能编译通过的。但是如果要使用,使用g++进行编译即可。或者使用_Bool a = 1;这种形式。

分享到:
评论

相关推荐

    linux c++ 守护线程,判断程序是否运行,不存在就启动

    while (true) { if (!isProgramRunning("target_program")) { startTargetProgram("/path/to/target_program"); } // 为了防止CPU占用过高,添加适当的延时 std::this_thread::sleep_for(std::chrono::seconds...

    java通过代码登录远程linux服务器并执行linux命令源码以及jar包

    while (true) { if (channel.isClosed()) { break; } if (channel.getExitStatus() != -1) { break; } while (channel.getInputStream().available() &gt; 0) { int read = channel.getInputStream().read...

    VS2017开发linux程序

    while (true) { std::cout ; sleep(1); } } int main() { boost::thread thr(threadfun); thr.join(); return 0; } ``` 2. **编译与运行**: - 编译成功后,通过“调试”-&gt;“Linux控制台”运行工程。 ...

    linux试卷.pdf

    while true do echo "" echo "1. copy" echo "2. rename" echo "3. remove" echo "4. find" echo "5. exit" echo "" read -p "请输入您的选择:" choice case $choice in 1) echo "copy";; 2) echo "rename";; 3) ...

    java修改linux密码资料

    pb.redirectErrorStream(true); Process p = pb.start(); BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream())); String line; while ((line = in.readLine()) != null) { ...

    linux上通过sh方式启动java jar程序并做为守护进程

    在Linux系统中,Java应用程序通常以两种主要方式运行:直接通过命令行或作为守护进程(daemon)。本篇文章将深入探讨如何使用`sh`脚本来启动Java的JAR程序,并将其设置为守护进程,以便在后台持续运行,即使用户注销...

    Java(通过ganymed-ssh2-build210.jar)实现SSH远程连接linux终端

    Java通过ganymed-ssh2-build210.jar库实现SSH远程连接Linux终端是一个常见的应用场景,主要用于自动化运维、系统管理或者开发过程中需要与Linux服务器交互的场景。ganymed-ssh2-build210.jar是Java的一个开源SSH库,...

    supervisor在linux环境下的离线安装包

    在开始安装 `Supervisor` 之前,确保系统已经安装了 Python 2.7 或更高版本,因为 `Supervisor` 不支持 Python 3.0 至 3.3 版本。你可以通过以下命令检查 Python 是否已安装: ```bash python --version ``` 如果...

    Linux命名管道示例

    while True: with open("my_pipe", "r") as pipe: line = pipe.readline() if not line: break print(f"Received: {line.strip()}") time.sleep(1) ``` 在这个例子中,`producer.py`不断向`my_pipe`写入10条...

    Linux 用户的 3 个命令行小技巧

    首先,我们来探讨如何在不使用Cron的情况下调度Linux任务。在Linux中,通常使用Cron服务来定时执行任务,但有时我们可能需要临时或简单地安排任务执行。一个方法是通过编写一个简单的循环脚本来实现。例如,要每5...

    Linux内核线程编程方法

    Linux内核线程编程涉及到操作系统的核心机制,是Linux系统中用于执行特定内核任务的一种机制。内核线程与用户进程的主要区别在于它们不拥有独立的地址空间,它们的活动范围仅限于内核空间,不会进行用户态到内核态的...

    Linux网络编程大作业.docx

    开发环境通常包括安装有Java Development Kit (JDK) 的Linux操作系统,例如Ubuntu或CentOS,以及集成开发环境(IDE),如Eclipse或IntelliJ IDEA,这些工具支持Java编程和调试。此外,开发者还需要对TCP/IP协议有...

    Linux C++ curl 文件下载功能代码

    while (true) { std::function()&gt; task; { std::unique_lock&lt;std::mutex&gt; lock(mutex_); condition_.wait(lock, [this] { return !tasks_.empty(); }); if (tasks_.empty()) { break; } task = std::move...

    Python也可以做游戏吗?Pygame简介.docx

    Pygame支持跨平台,意味着在Windows、Mac OS和Linux上都可以顺利运行。此外,Pygame以其简洁明了的接口和完善的文档,为初学者提供了一个理想的入门平台。 使用Pygame,开发者能够实现绘制图形、处理音频、事件监听...

    Linux下扫描蓝牙获取RSSI

    while (true) { // 处理DBus消息循环 // ... 实现 ... } // ... 关闭DBus连接 ... return 0; } ``` 请注意,以上代码仅为示例,实际应用需要填充具体实现细节。在处理DBus消息和解析设备属性时,可能需要...

    Linux进程检测脚本测试程序

    while true; do # 检查程序1是否运行 PID1=$(pgrep -x "$PROG1") if [ -z "$PID1" ]; then echo "程序$PROG1未运行,重新启动..." /path/to/$PROG1 & fi # 检查程序2是否运行 PID2=$(pgrep -x "$PROG2") ...

    局域网内的两台Linux实现一端录音,一端播放。实现单工模式的对讲功能

    while True: recording = subprocess.check_output(["arecord", "-f", "S16_LE", "-r", "44100", "-t", "raw"]) s.sendto(recording, (UDP_IP, UDP_PORT)) ``` **接收端(接收并播放):** ```python import ...

    linux系统命令及shell脚本实践指南

    Linux支持多种文件系统类型,如ext4、XFS等。 2. **文件和目录管理** - **ls**:列出目录内容。 - **cd**:改变当前工作目录。 - **mkdir**:创建目录。 - **rm**:删除文件或目录(需谨慎使用)。 - **mv**:...

    基于X11的Linux下的全局键鼠监控方法,只能获得键鼠动作,但是不能拦截,代码可直接运行

    在Linux系统中,尤其是基于X Window System(简称为X11)的桌面环境中,实现全局键鼠监控是一项常见的需求,例如用于开发系统监控工具、自动化脚本或游戏辅助程序等。X11提供了丰富的API接口,允许开发者监听并处理...

    两道Linux面试题

    while true; do # 添加执行权限 chmod +x /mnt/test/test # 启动 test 程序 /mnt/test/test # 更新计数器 let count=$count+1 echo "test 运行次数为 $count" # 判断是否超过指定次数 if [ "$count" -gt ...

Global site tag (gtag.js) - Google Analytics