C 中自引用变量的初始化

主要观点:作者阅读了SDL Shader Language Quickstart,发现该语言与 C 语言的一个区别是变量初始化不能引用自身,且解释了在 C 中使用未初始化变量是未定义行为,同时探讨了对变量取指针的情况,通过测试程序在 GCC 14.2.0 下用特定编译标志运行成功。
关键信息:

  • 语言差异:SDL 语言变量初始化不能引用自身,而 C 允许但有问题。
  • C 中未初始化变量:是未定义行为。
  • 取变量指针:在 C 中可通过隐式转换void *和其他指针类型来实现void *x = &x
    重要细节:
  • 示例代码:int x = x + 1;在 C 中是错误的,因为会引用未初始化的变量。
  • 测试程序:#include <stdio.h>,在main函数中进行void *x = &x;及相关输出操作,用特定编译标志运行成功。
阅读 10
0 条评论