Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
我可以省略 C 中 main 的返回吗? [复制]
这个问题在这里已经有答案了 在 C 中 3 6 1 主函数 3 6 1 5 main 中的 return 语句具有离开 main 函数的效果 销毁具有自动存储持续时间的任何对象 并且 使用返回值作为参数调用 exit 如果控制达到 main
c
programentrypoint
C99
在 OpenCL 中将函数作为参数传递
是否可以在 OpenCL 1 2 中将函数指针传递给内核 我知道可以用C实现 但不知道如何在OpenCL的C中实现 编辑 我想做这篇文章中描述的同样的事情 在 C 中如何将函数作为参数传递 https stackoverflow com q
c
opencl
C99
C 预处理器宏不解析逗号分隔的标记?
我想根据参数的数量选择两个函数之一 nargs 0 gt f1 nargs gt 0 gt f2 宏执行以下操作 获取第一个参数 如果没有提供参数 则会添加两个逗号 NULL NULL 然后它会从返回的参数列表中选择第二个参数 例如 f H
c
macros
cpreprocessor
C99
variadicmacros
C99 中数组的静态大小[重复]
这个问题在这里已经有答案了 一个非常简单的 C 程序 include
c
Arrays
gcc
C99
Visual Studio 2017 完全支持 C99 吗?
Visual Studio 的最新版本改进了对 C99 的支持 最新版本VS2017现在支持所有C99吗 如果没有 C99 还缺少哪些功能 No https learn microsoft com en us cpp visual cpp
c
VisualStudio
VisualStudio2017
C99
这种对有效类型规则的使用是否严格遵守?
C99和C11中的有效类型规则规定 没有声明类型的存储可以用任何类型写入 并且存储非字符类型的值将相应地设置存储的有效类型 抛开 INT MAX 可能小于 123456789 的事实不谈 以下代码对有效类型规则的使用是否严格符合 inclu
c
gcc
undefinedbehavior
C99
strictaliasing
alloca 函数作用域中的 goto 有效吗?
C 标准禁止转到存在 VLA 的函数作用域 VLA 和对 alloca 函数的调用在低级别上应该具有相同的结果 我可能是错的 因为我只是一个 C 不是一个低级程序员 但在我的想象中这似乎很机智 那么下面的代码片段也会是未定义的行为吗 int
c
C99
undefinedbehavior
alloca
在 C 中获取临时(复合文字)参数的地址
I can t imagine this isn t already duplicate but I can t easily find the answer since the more complex scenarios specifi
c
languagelawyer
C99
initializer
temporaryobjects
为什么 const int x = 5;不是C中的常量表达式吗?
本以为C不会再给我带来惊喜了 但这却让我大吃一惊 const int NUM FOO 5 int foo NUM FOO gt error C2057 expected constant expression 我的 C 经验让我内心不赞成
c
constants
VisualStudio2019
C99
variablelengtharray
编译器如何解析在变长数组之后声明的变量的地址?
假设我有以下函数 它使用可变长度数组 void func int size int var1 int arr size int var2 编译器如何确定地址var2 我能想到的唯一方法就是放置arr after var1 and var2
c
compilerconstruction
Compilation
C99
variablelengtharray
C99 中带有 0 个参数的可变参数宏
我有一些调试代码 如下所示 define STRINGIFY x x define TOSTRING x STRINGIFY x define AT FILE TOSTRING LINE void my error const char l
macros
C99
variadic
C 联合类型双关数组
鉴于以下代码 我有一些与类型双关相关的问题 我看不出这没有违反严格的别名规则 但我无法指出具体的违规行为 我最好的猜测是 将联合成员传递到函数中违反了严格的别名 以下代码已开启编译器资源管理器 https godbolt org z bnY
c
C99
C11
在 NULL 表示为 0 的平台上,编译器是否曾经生成过 NULL <= p 的意外代码
在 C99 中 平等 似乎从来没有未定义过 它可以产生1如果您意外地将其应用到无效地址 例如 x 1 y可能是偶然的事实 它不会产生未定义的行为 许多 但不是全部 无效地址未定义为根据标准计算 使用 因此p x with p悬空指针 或者
c
C99
undefinedbehavior
size_t 的正确定义是什么? [复制]
这个问题在这里已经有答案了 首先 我所说的 正确的定义 是什么意思 例如 K R C 程序设计语言 第二版 在部分2 2 数据类型和大小 对整数做出非常清楚的陈述 有short int and long对于整数类型 它们需要代表不同边界的值
c
C99
C11
sizet
如何检索 C99 可变参数宏的最后一个参数?
Visual Studio 失败的 static assert 错误消息完全由错误代码和 static assert 的第二个参数组成 没有任何其他消息表明这是静态断言失败 我想做一个宏来解决这个问题 例如 作为第一次尝试 define S
c
C99
cpreprocessor
如果 pragma STDC FENV_ACCESS 不存在,是否意味着默认舍入模式?
我对 C 标准的解释有疑问 最新草案取自http www open std org jtc1 sc22 wg14 www docs n2454 pdf http www open std org jtc1 sc22 wg14 www doc
c
C99
C11
C99 指定初始化程序重复索引在构建输出或 lint 中根本未标记
前几天我玩了一下指定的初始化器 令我惊讶的是 多次使用相同的索引是有效的 更重要的是 当我这样做时 它甚至没有产生编译器警告 错误 甚至信息语句 甚至 PC Lint 似乎也不关心 我认为这最让我惊讶 我想知道在这种情况下编译器是否有原因甚
c
C99
Lint
designatedinitializer
PClint
哪些 C99 功能被认为是有害的或不受支持的 [关闭]
Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我通常在 C89 中编写 C 代码 现在使用 C99 的一些功能 例如intxx t or VA ARGS or snprintf 非常有用 甚
c
compilerconstruction
C99
c89
在 MS Visual C++ 中启用 VLA(可变长度数组)?
如何启用 VLA C99 中定义的可变长度数组 MS Visual C 中的使用 或者根本不可能 是的 我知道 C 标准基于 C89 并且 VLA 在 C89 标准中不可用 因此在 C 中不可用 但 MSVC 也应该是 C 编译器 可以使用
c
visualc
C99
c89
variablelengtharray
使用指向单个值的指针作为数组
请注意 该问题已针对 注册 变量进行了扩展 简而言之 我的问题是 这个合法的 C 代码是否合法 按照不同 ISO 9899 C 规范的标准字母 最好在标准的文字中加上 证明 int a 0 int b a 0 const int c 0 b
c
Arrays
pointers
C99
c89
1
2
3
4
5
6
7
»