问题标签 [function-declaration]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 为什么不能使用函数的 typedef 来定义函数?
来自 ISO/IEC 14882:2011(E) 的第 8.3.5.11 节:
函数类型的 typedef 可用于声明函数,但不得用于定义函数
该标准继续给出这个例子:
是什么促成了这条规则?它似乎限制了函数 typedef 的潜在表达用途。
c++ - 定义一个出现在多个名称空间中的函数
我正在尝试为一组函数和类定义一个通用接口,这些函数和类将具有多个不同的后端实现(使用不同的库)。
因此,我真的更愿意简单地在一个地方而不是在每个单独的命名空间中定义一个函数。
例如,我有一个全局函数:
现在我想要该功能的 3 个单独的实现。一个是直接的 C,一个是手工编码的汇编器,一个是使用库“x”。
我实际上是在尝试避免执行以下操作:
有没有很好的模式来避免这样做?当有 100 个奇怪的函数时,它会变得更加痛苦。
我能想到的唯一想法是将所有定义移动到没有头文件保护的头文件中,然后执行:
有没有人能想到的更好的方法呢?
coding-style - 干净代码中的降级规则
在干净的代码(第 3 章,每个函数的一个抽象级别)中有一些关于降级规则(高层函数在顶层,底层函数在下一层)。
由于coffeescript中没有函数声明,当我使用coffeescript时应该怎么做。
例子:
我想这样做。
c++ - 函数声明而不是在 C++ 中调用构造函数
我希望在这里初始化 B 的对象,但我得到了函数声明:
输出为:对'b'中的成员'test'的请求,它是非类类型'B(A( *)())'*
为什么在这种情况下不调用构造函数?
c - 如何正确声明此函数?
我认为我的意图很明确,但这不起作用。
PS我需要将返回值存储在一个名为char *fileList[260]
而不是char** fileList.
c - 如何声明一个函数原型及其参数声明列表?
当我阅读 ISO/IEC 9899:TC3 6.9.1 -> 示例 13
并且注意:
[...]
这里 int a, b; 是参数的声明列表。这两种定义之间的区别在于,第一种形式充当原型声明,强制转换后续调用函数的参数,而第二种形式则没有。
所以我写了自己的测试代码来编译它。(我想通了,这两种方式都需要在之前声明,或者必须使用上面提到的类型定义的原型)
所以我现在要问:这种方式之间是否存在与性能相关的差异:
和这个?
因为据我了解,这是有区别的,因为第一种方法避免了函数调用时的多次转换,因为它说不必转换为参数类型,因为它保证类型将是类型(在这种情况下)size_t
.
但是我很困惑,因为我发现原型在两种情况下都必须看起来相似,我认为原型是编译器对其进行处理的来源。
那么:到底有什么区别?如果有,为什么第一种方式很少(从未)见过?
c++ - 这怎么可能在 C++ 中使用?
- 令我惊讶的是,我发现 c++ 对象的名称可以与类名相同。有人可以向我解释原因吗?
- 当我将类的对象声明
a
为a a1()
时,它不会引发错误,但不会调用构造函数。为什么会这样?
我的代码:
c - 警告:冲突类型错误
我收到以下错误:
我已经多次查看从声明到调用函数本身的函数,但我仍然无法弄清楚这一点。
第 14 行是调用 RowCalc 的主要位置,第 41 行是编写它的位置。
javascript - 为什么我不能在带有 JQuery 的事件处理函数中将“函数声明”作为参数传递?
为什么使用函数声明不能正常工作,但使用函数表达式却可以正常工作?假设唯一的区别是浏览器如何将它们加载到执行上下文中。
使用函数表达式效果很好:
lua - Lua - 可以从表值调用函数并返回其值
我正在就此事寻求帮助,因为我无法完全掌握是否有可能,更不用说我做错了。
我的意图是打印(my.Question)并让它返回“你想知道什么?”,到目前为止,我刚刚遇到了头痛和错误,试图让它发挥作用。
如果这个问题得到解决,我可以假设而不是自己弄清楚,我还不如另外问。将值传递给函数怎么样。
所以在这里我想做, print(my.Answer(42)) 并返回“Life..”