问题标签 [p99]
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 - 如何判断可选参数是否已传递给函数 C
编辑 3:对于代码本身,请一起检查第一个答案或这篇文章的结尾。
如标题中所述,我试图找到一种方法来判断可选参数是否已传递给函数。我想做的是几乎所有动态语言如何处理它们的子字符串函数。下面是我目前的,但它不起作用,因为我不知道如何判断是否/何时使用该东西。
基本上我希望仍然能够不包含我想要返回的字符串的长度,而只是让它走到字符串的末尾。但我似乎找不到办法做到这一点。由于也无法知道 C 中传递的参数数量,这让我失去了第一个想法。
编辑:这是当前代码的新方法。
然后在一个文件中我调用 test.c 看看它是否有效。
functions.c 有一个包含 functions.h 的内容,其中包括所有需要的内容。这是 clang 输出(因为 clang 似乎通常会提供更多细节。
GCC 只是说对象不是函数
编辑 2:请注意,将其设置为 -1 也不会改变它,它仍然会引发同样的事情。我使用的编译选项如下。
gcc -std=c99 -c test.c -o test -lm -Wall
Clang 是一回事(它是否适用是另一个问题。
在这里回答
您将需要从那里获得 p99。它是由选定的答案。只需放入您的源目录,您应该就可以了。还要总结他对许可证的回答。你可以随心所欲地使用它,但你基本上不能分叉它。因此,出于此目的,您可以在任何项目中自由使用它和字符串函数,无论是专有的还是开源的。
我唯一要问的是,你至少给这个线程一个链接,以便发生在它上面的其他人可以了解堆栈溢出,因为这就是我对在这里得到帮助的事情发表评论的方式。
web-services - 什么是 P99 延迟?
P99 延迟代表什么?我在有关应用程序性能的讨论中不断听到此消息,但在网上找不到可以讨论此问题的资源。
c - C宏删除参数列表中的重复项
我想知道是否可以构建一个 gnu C 宏,该宏扩展为一个标记列表(整数),这些标记是没有重复的宏的参数。可以假设参数的数量是固定的(目前)。即我想要类似的东西:
扩展例如
到1,2
. 参数没有排序,结果也不必排序。
根据下面的建议,我构建了一个示例,它基本上可以使用 p99 完成我想要的功能,包括:
c - 如何在不使用#ifdef 的情况下测试是否定义了宏标识符?
有谁知道如何,或者甚至可以创建一个可变参数宏,如果它的参数不是定义的宏,则扩展为 0,但如果它的参数是定义的宏,则扩展为 1?(我使用的是 c99。)
编辑:我特别不想要任何#if
相关的解决方案......它需要是一个可变参数宏(如果可能的话)所以我可以做这样的事情:
Where ABC
&是其他处理方式非常不同XYZ
的扩展的占位符。__VA_ARGS__