<分区>
我可以在 ubuntu-64 位上使用 gcc 以下列方式将参数传递给 C 中的函数,而不会出现任何警告或错误:
void func(char* test){
// do something here
}
void main() {
func((char*) "smaps");
}
除了一个关于 C++ 的类似问题的评论外,我没有找到很多关于将匿名参数传递给 C 函数的示例。我正在考虑在我的代码中使用这种技术(很多),这些代码将在多个可用的 AMD64/ARM 设备上编译(主要是基于 debian 的操作系统)。我的问题是,这是特定于编译器的吗?
gcc --version 的输出:
$ gcc --version
gcc (Ubuntu 6.3.0-12ubuntu2) 6.3.0 20170406
更新:尽管我认为 4386427 对我来说已经足够好了,但由于该问题被搁置,我会对其进行更多解释。我有一个脚本,它多次调用以 char** 作为参数的特定函数。我认为我需要单独显式声明一个 char** 并在每次调用函数时按名称将其传递给函数。我认为声明一个字符串并同时将其传递给函数会更方便;类似于:
func( (char**) {"first_string", "second_string"} ).
我最初担心的是,这在 C 中是否普遍允许,或者这是特定于编译器的功能? 4386427 的回答表明它不是特定于编译器的,但是我应该注意传递给函数的 char** 是不可变的。