首页 > 其他分享 >不同厂家的编译器 对C语言的理解不一样

不同厂家的编译器 对C语言的理解不一样

时间:2023-03-04 21:14:31浏览次数:42  
标签:gcc void 厂家 len C语言 编译器 clang fun buf

#  注意 是 C语言代码,不是C++
void func(void)
{
    const int buf_len = 64;
    char buffer[buf_len] = { 0 };
}
$$cat -n fun.c
     1  void func(void)
     2  {
     3      const int buf_len = 64;
     4      char buffer[buf_len] = { 0 };
     5  }

# gcc 编译报错 :(

$gcc -c fun.c
fun.c: In function ‘func’:
fun.c:4:5: error: variable-sized object may not be initialized
    4 |     char buffer[buf_len] = { 0 };
      |     ^~~~
# gcc 版本如下
$gcc --version
gcc (Debian 10.2.1-6) 10.2.1 20210110
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


# clang 11.x 编译完全没有错误:)
clang -c fun.c 
# clang 版本如下
$clang --version
Debian clang version 11.0.1-2
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin

# 因为项目用的是GCC,所以放弃这个写法 :)

标签:gcc,void,厂家,len,C语言,编译器,clang,fun,buf
From: https://www.cnblogs.com/wangshaodong/p/17179114.html

相关文章

  • 第一章程序设计和C语言
    第1章 程序设计和C语言本文作者:INE1228本文链接:https://www.cnblogs.com/FiftyOne/p/17178893.html版权声明:未经作者允许严禁转载1. 机器语言1.1 概念计算机能直接......
  • C语言最大公约数
    ////main.c//test_c1////CreatedbyZXTIGERon2023/3/4.//#include<stdio.h>intmain(intargc,constchar*argv[]){//1.求最大公......
  • c语言编译过程及工程下的.c文件.h文件.o文件.so文件.a文件
    原文:https://zhuanlan.zhihu.com/p/375638718什么是GCCGCC仅仅是一个编译器,没有界面,必须在命令行模式下使用。通过gcc命令就可以将源文件编译成可执行文件。GCC既可以......
  • 替换空格--C语言
    问题:请实现一个函数,将一个字符串s中的每个空格替换成“%20”。例如,当字符串为WeAreHappy.则经过替换之后的字符串为We%20Are%20Happy。数据范围:。保证字符串中的字符为大......
  • C#环境搭建,以及C#编译器的使用
    原文:https://tool.4xseo.com/a/25168.html搭建nuget包管理器HomePagewindows环境下,可以下载安装包:Download使用最新版本的C#编译器C#5.0之后,微软将csc开源并独立运行......
  • [From 2.4]C#编译器和程序集链接器(以及一些它们的命令开关)
    原文:https://blog.csdn.net/weixin_30481087/article/details/96836436C#编译器:(用csc命令来使用C#编译器)程序集链接器(AssemblyLinker):(用al命令来使用C#编译器)除了使用......
  • 第2章 C语言提高专题篇
    指针入门到精通(一)指针是什么​ 如果在程序中定义了一个变量,在对程序进行编译时,系统就会给该变量分配内存单元,编译系统根据程序中定义的变量类型,分配一定长度的空间​ ......
  • 实验1 C语言开发环境使用和类型,运算符,表达式
    //打印一个字符小人#include<stdio.h>intmain(){ printf("O\n"); printf("<H>\n"); printf("II\n");printf("O\n");printf("<H>\n");printf("II\n"......
  • 跟着鹏哥学C—初识C语言2(编程题)
    编程题:求两个数的较大值题目内容:写一个函数求两个数的较大值分析:比较两个数的大小,然后输出较大的那个数我看到这个题的时候,想的是将两个数进行相减x-y,得到的结果,如果大于0,则......
  • 跟着鹏哥学C—初识C语言2
    1.选择语句(if语句)#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>intmain(){intinput=0;printf("你会C语言吗?(1/0)>:");scanf("%d",&input);if(input==1......