问题标签 [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.

0 投票
4 回答
1169 浏览

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。它是由选定的答案。只需放入您的源目录,您应该就可以了。还要总结他对许可证的回答。你可以随心所欲地使用它,但你基本上不能分叉它。因此,出于此目的,您可以在任何项目中自由使用它和字符串函数,无论是专有的还是开源的。

我唯一要问的是,你至少给这个线程一个链接,以便发生在它上面的其他人可以了解堆栈溢出,因为这就是我对在这里得到帮助的事情发表评论的方式。

0 投票
1 回答
1340 浏览

c - P99 和 C99 与 C11

也许我误解了P99库的使用,但它比 C11 提供了什么优势(主要关注多线程),如果它不仅仅是一个模拟器的话。

速度?效率?

还是只是向后兼容?

0 投票
4 回答
117339 浏览

web-services - 什么是 P99 延迟?

P99 延迟代表什么?我在有关应用程序性能的讨论中不断听到此消息,但在网上找不到可以讨论此问题的资源。

0 投票
1 回答
304 浏览

c - C宏删除参数列表中的重复项

我想知道是否可以构建一个 gnu C 宏,该宏扩展为一个标记列表(整数),这些标记是没有重复的宏的参数。可以假设参数的数量是固定的(目前)。即我想要类似的东西:

扩展例如

1,2. 参数没有排序,结果也不必排序。


根据下面的建议,我构建了一个示例,它基本上可以使用 p99 完成我想要的功能,包括:

0 投票
1 回答
619 浏览

c++ - C++11 中的 P99_FOR

我在我的 C99 代码中使用P99中定义的P99_FOR宏来迭代 VA_ARGS。它完美地工作。

现在我想迁移到 C++11,我想知道是否有任何类似于 P99_FOR 的宏。

这是我在 C99 中的代码:

例如set_OCTET_STRING(myVar->speed, 3, 34, 10, 11)将扩展为:

0 投票
1 回答
82 浏览

c - 如何在不使用#ifdef 的情况下测试是否定义了宏标识符?

有谁知道如何,或者甚至可以创建一个可变参数宏,如果它的参数不是定义的宏,则扩展为 0,但如果它的参数是定义的宏,则扩展为 1?(我使用的是 c99。)

编辑:我特别不想要任何#if相关的解决方案......它需要是一个可变参数宏(如果可能的话)所以我可以做这样的事情:

Where ABC&是其他处理方式非常不同XYZ的扩展的占位符。__VA_ARGS__