版本dev
C语言代码中遇到的错误 [Error] ‘for’ loop initial declarations are only allowed in C99 or C11 mode 是由于 编译器默认使用旧版C语言标准(如C89),而新版C99/C11标准允许在 for 循环内直接声明变量。
问题原因C语言标准限制
旧版C89标准 要求所有变量声明必须在函数或代码块的开头,不允许在 for 循环的初始化部分声明变量(如 for (int i=0; …))
C99/C11标准 放宽了这一限制,允许在 for 循环内声明变量。编译器默认设置
旧版编译器(如Dev-C++内置的GCC)可能默认使用C89标准编译代码。启用C99/C11标准
解决办法一、在编译时添加 -std=c99 或 -std=c11 选项,告知编译器使用新版标准:
Dev-C++设置:
点击菜单栏的 工具 (Tools) → 编译选项 (Compiler Options)勾选 “编译时加入以下命令”输入 -std=c99 或 -std=c11 → ...
wangsir
title: 我的文章标题date: 2024-08-31tags: - 标签1 - 标签2categories: - 分类1
无题
# 编译器
1什么是编译器?
简单的理解就是把你自己写的代码编译成执行文件。
2什么是编辑器?
编辑代码的软件都有编辑器。比如直接点击txt文件,其就是编辑器。
3芯片架构\n芯片有两个架构–X86架构和ARM架构。
比如咱们电脑就是x86架构,手机使用的芯片是ARM架构,单片机芯片也是ARM架构。不管是WIndows操作系统还是linux操作系统,自带的编译器都是X86的,但是我们要把生成的程序烧到ARM芯片里面。这就涉及到在X86机器上编译程序,生成arm的程序。所以这就需要另外一种编译器——交叉编译器。
4 交叉编译器
4.1 GNU\narm-none-eabi-gcc是GNU推出的的ARM交叉编译工具。
4.2 Codesourcery(Mentor)\narm-none-linux-gnueabi-gcc\n\n基于GCC推出的的ARM交叉编译工具。可用于交叉编译ARM(32位)系统中所有环节的代码,包括裸机程序、u-boot、Linux kernel\n\narm-none-elf-gcc\n\n基于GC ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment