首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏嵌入式学习

    C99)复合字面量

    #include <stdio.h> struct argvs { char a[64]; int b; }; int pfunc(struct argvs *a) { printf("argvs.a=%s argvs.b=%d\n", a->a, a->b); } int func(struct argvs a) { printf("argvs.a=%s argvs.b=%d\n", a.a, a.b); } int main(int argc, char *arg

    64640发布于 2020-09-08
  • 来自专栏嵌入式学习

    c99的新功能

    它通常被称为C99C99被ANSI于2000年3月采用。 在C99中包括的特性有: 增加了对编译器的限制,比如源始码每行要求至少支持到 4095 字节,变量名函数名的要求支持到 63 字节(extern 要求支持到 31)。 增强了预处理功能。 而C99中明确为 -22 / 7 = -3, -22 % 7 = -1,只有一种结果。 取消了函数返回类型默认为 int 的规定。 但是各个公司对C99的支持所表现出来的兴趣不同。当GCC和其它一些商业编译器支持C99的大部分特性的时候,微软和Borland却似乎对此不感兴趣。

    68050发布于 2020-09-08
  • 来自专栏蓝天

    c99 增加的restrict关键字

    c99中新增加了一个类型定义,就是restrict。 n] += 8;      / * gives wrong answer */ One of the new features in the recently approved C standard C99C99中新增了类型修饰符(qualifier) restrict 在网上找来找去,看到介绍它的不多,就把看到的一些介绍做个总结。 然后在CSDN看到了这个: ========================8<==================================== restrict是C99版新增加的关键字! 但要注意:restrict是C99中新增的关键字,在C89和C++中都不支持,在gcc中可以通过—std=c99来得到对它的支持。

    84920发布于 2018-08-07
  • 来自专栏C++开发

    C99】#,##,#__VA_ARGS__,##__VA_ARGS__

    #运算符用于将宏参数转换为字符串字面量。这通常用于调试或日志记录,将参数的值以字符串形式输出。

    24500编辑于 2025-03-30
  • 来自专栏mythsman的个人博客

    C99显示函数名的宏__func__

    其实在C99标准中就已经有了这样的宏__func__,只是平常不怎么被提起。那么这个宏怎么用呢?

    56820编辑于 2022-11-14
  • 来自专栏Khan安全团队

    PHPShell - 流行的 C99 变体的安全构建

    web shell 的一个很好的例子是 c99 变体,它是一个 PHP shell(大多数人称之为恶意软件),经常上传到易受攻击的 web 应用程序,为黑客提供接口。 c99 shell 允许攻击者控制 Internet 服务器的进程,允许他或她作为威胁正在运行的帐户在服务器上发出命令。 查找 c99 shell 是识别系统妥协的极好方法。 如果打包,c99 shell 大约有 1500 行,如果正确显示则有 4900 多行,它的一些特性包括显示 Web 服务器可能使用的安全措施,一个有权限的文件查看器,它有许多可用于编写保护对策的签名。

    69720编辑于 2023-02-23
  • 来自专栏bit哲学院

    C11与C99的变化对比

    C11标准是C语言标准的第三个版本,前一个标准版本是C99标准。2011年12月8日,国际标准化组织(ISO)和国际电工委员会  (IEC)旗下的C语言标准委员会正式发布了C11标准。  相比C99的变化:   1.对齐处理操作符 alignof,函数aligned_alloc(),以及头文件<stdalign.h>   2. 例子:  _Static_assert(FOO > 0, "FOO has a wrong value");  5.删除了 gets() 函数,C99中已经将此函数被标记为过时,推荐新的替代函数 gets_s

    2.8K00发布于 2021-02-17
  • 来自专栏bit哲学院

    C99标准里的inttypes.h头文件

    上网搜了一下才知道是C99标准里新引入的宏定义,如下:  # define PRIu32     "u"  这些宏定义里,PRIi8、PRIu8、PRIo8以及PRIx8,其中i为有符号,u为无符号,o License along with the GNU C Library; if not, see    <http://www.gnu.org/licenses/>.  */ /*  *  ISO C99

    1.8K20发布于 2021-02-20
  • 来自专栏遊俠扎彪

    C语言C99标准中的变长数组(VLA)

    但今天有了解到,在C语言的C99标准中,是可以有变长数组的,即可以存在Arrays of Variable Length,也就是说,上面的代码在支持C99的编译器中是合法的。

    4.2K90发布于 2018-01-01
  • 来自专栏bit哲学院

    Visual Studio 2013支持的C99库(library)

    参考链接: C++ fegetexceptflag() C99已经发布多年,但微软的Visual C++尚未完整支持C99。 我偶然看到VS官方博客上一篇介绍C99库支持的文章,特翻译了一下,希望对大家有帮助。水平有限,翻译不当之处,欢迎指正。  大家好,我是Pat Brenner,Visual C++库团队的开发人员。 在这篇博文中,我想分享添加到Visual Studio 2013中的 C运行时库(run-time library)对C99支持的一些信息。  strtoll, strtoull  wchar.h     vwscanf, vfwscanf, vswscanf, wcstof, wcstold, wcstoll, wcstoull   我们知道这并不是对C99

    1.3K20发布于 2021-02-09
  • 来自专栏bit哲学院

    Visual Studio 2013支持的C99库(library)

    参考链接: C++ vwscanf() C99已经发布多年,但微软的Visual C++尚未完整支持C99。我偶然看到VS官方博客上一篇介绍C99库支持的文章,特翻译了一下,希望对大家有帮助。 在这篇博文中,我想分享添加到Visual Studio 2013中的 C运行时库(run-time library)对C99支持的一些信息。  strtoll, strtoull  wchar.h     vwscanf, vfwscanf, vswscanf, wcstof, wcstold, wcstoll, wcstoull   我们知道这并不是对C99

    89340发布于 2021-02-20
  • 来自专栏嵌入式学习

    C语言定义数组时使用枚举作为数组的下标 ——c99功能

    它通常被称为C99C99被ANSI于2000年3月采用。 在C99中包括的特性有: 增加了对编译器的限制,比如源始码每行要求至少支持到 4095 字节,变量名函数名的要求支持到 63 字节(extern 要求支持到 31)。 增强了预处理功能。 而C99中明确为-22 / 7 = -3, -22 % 7 = -1,只有一种结果。 取消了函数返回类型默认为 int 的规定。 但是各个公司对C99的支持所表现出来的兴趣不同。当GCC和其它一些商业编译器支持C99的大部分特性的时候[4],微软和Borland却似乎对此不感兴趣。

    1.9K60发布于 2020-09-07
  • 来自专栏嵌入式项目开发

    C语言C99标准、C11标准新增加的特性

    C99 (ISO/IEC 9899:1999):发布于1999年,C99标准在C89的基础上进行了大量扩展,引入了如可变长度数组(VLAs)、限制指针(restrict)、内联函数、复数类型、新的整数类型 C11 (ISO/IEC 9899:2011):发布于2011年,C11标准在C99基础上进一步完善,加入了对多线程编程的支持(通过<threads.h>库)、增强了Unicode支持(通过<uchar.h C99标准(ISO/IEC 9899:1999)C99是C语言的一个重要更新,发布于1999年。它是C89标准的后续版本,引入了许多新特性和改进,旨在适应不断发展的编程需求和技术环境。 C99标准增加了诸如限制指针(restrict)、内联函数、可变长度数组(VLAs)、复数类型(_Complex)、新的整型常量(如_Bool)、改进的浮点数处理以及对编译器限制的放宽等特性。 此外,C99还引入了//风格的单行注释,使代码更加易读。尽管C99引入了许多现代化的特性,但直到今天,并非所有编译器和开发环境都完全支持C99的所有特性。

    1.2K00编辑于 2025-01-16
  • 来自专栏Python进阶之路

    解决Dev-C++ ‘for‘ loop initial declarations are only allowed in C99 or C11 mode

    在使用 Dev-C++ 编写 C 语言程序时出现: [Error] ‘for’ loop initial declarations are only allowed in C99 or C11 mode 在 for 循环里声明变量只允许在 C99 或 C11 模式, 需要在工具(Tools)/ 编译选项(complier option)/代码生成下的语言标准选择C99

    3.3K10编辑于 2021-12-07
  • 来自专栏Python进阶之路

    ‘for‘ loop initial declarations are only allowed in C99 or C11 mode 解决方法

    语言程序遇到如下异常,不能成功编译运行程序 使用 GCC 编译代码是报出 [Error] ‘for’ loop initial declarations are only allowed in C99 or C11 mode [Note] use option -std=c99,-std=gnu99,-std=c11 or-std=gnu11 to compile your code 二、解决方法 也可以将 GCC 换成 C99 标准就可以在 for 循环内定义 i 变量了。 gcc src.c -std=c99 -o src

    8.8K30发布于 2021-12-01
  • 来自专栏10km的专栏

    macOS:编译boost静态库 error:implicit declaration of function ‘out_printf‘ is invalid in C99

    fileunix.c pathunix.c execcmd.c:120:5: error: implicit declaration of function 'out_printf' is invalid in C99 error generated. make.c:132:13: error: implicit declaration of function 'out_printf' is invalid in C99 targets, ^ make.c:184:17: error: implicit declaration of function 'out_printf' is invalid in C99 ^ make.c:215:17: error: implicit declaration of function 'out_printf' is invalid in C99 ^ make.c:300:9: error: implicit declaration of function 'out_printf' is invalid in C99

    2.1K30发布于 2021-04-19
  • 来自专栏C语言

    试试这个C99神操作!

    更好用的C99初始化方法当我们使用C99标准时,可以引入了一种更安全、更清晰的语法 —— 指定初始化(Designated Initializers)。

    26910编辑于 2025-10-27
  • 来自专栏嵌入式大杂烩

    【C语言笔记】什么是ANSI C标准?

    什么是C99标准? 2000年3月,ANSI采纳了 ISO/IEC 9899:1999 标准。这个标准通常指C99C99新增了一些特性,如:支持不定长的数组,即数组长度可以在运行时决定。 C11标准是C语言标准的第三版(2011年由ISO/IEC发布),前一个标准版本是C99标准。与C99相比,C11有哪些变化呢? 编译报错原因为,在C89标准下,循环变量不能在for循环内定义,必须把标准改为C99标准才可正常编译。 以C99编译的命令为: gcc -std=c99 test.c -o test.exe 如下图,以C99编译能成功编译: ? 所以在平时的开发中应该要了解编译器支持什么标准。 GCC编译器在编译的时候可指定C语言标准: 指定c90标准: -std=c90 指定C99标准: -std=c99 定C11标准(目前正在开发中): -std=c11 以上就是关于C语言标准的笔记,如有错误欢迎指出

    3.7K30发布于 2019-06-26
  • 编译安装 proxychains-ng proxychains4

    version.o src/version.c cc -DSUPER_SECURE -DHAVE_GNU_GETSERVBYNAME_R -DHAVE_PIPE2 -Wall -O0 -g -std=c99 o src/core.o src/core.c cc -DSUPER_SECURE -DHAVE_GNU_GETSERVBYNAME_R -DHAVE_PIPE2 -Wall -O0 -g -std=c99 src/allocator_thread.c cc -DSUPER_SECURE -DHAVE_GNU_GETSERVBYNAME_R -DHAVE_PIPE2 -Wall -O0 -g -std=c99 ip_type.o src/ip_type.c cc -DSUPER_SECURE -DHAVE_GNU_GETSERVBYNAME_R -DHAVE_PIPE2 -Wall -O0 -g -std=c99 o src/hash.o src/hash.c cc -DSUPER_SECURE -DHAVE_GNU_GETSERVBYNAME_R -DHAVE_PIPE2 -Wall -O0 -g -std=c99

    1.5K10发布于 2020-12-30
  • C++ 标准 和 C 标准 (截止到2019年03月)

    C99】 1999 年,ANSI 和 ISO 又通过了最新版本的 C 语言标准和技术勘误文档,该标准被称为 C99 。这基本上是目前关于 C 语言的最新、最权威的定义了。 现在,各种 C 编译器都提供了 C89(C90) 的完整支持,对 C99 还只提供了部分支持,还有一部分提供了对某些 K&R C 风格的支持。 目前主要的C语言规范有c89(c90), c95(94)和c99。 最新的一次C规范修订在99年制定(ISO/IEC 9899:1999),即常称的C99规范。 在2001年对C99的错误进行了修正,gcc支持的修正后的c99规范,但是到目前为止,gcc还没有完成对c99规范的完全支持。

    1.2K10发布于 2020-12-30
领券