问题标签 [undef]

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 投票
6 回答
2643 浏览

perl - 引用 undef 值时如何让 Perl 停止?

当您引用 undef 值时,如何让 Perl 停止并给出堆栈跟踪,而不仅仅是警告?似乎这use strict;还不够。

0 投票
9 回答
12739 浏览

c++ - 检查 C++ 中的值定义性

我在 C++ 中工作,我需要知道标量值(例如 a double)是否“已定义”。如果需要,我还需要能够“取消定义”它:

在 C++ 中可能吗?

谢谢

0 投票
3 回答
3609 浏览

perl - 如何在 Perl 中从 printf 呈现未定义的值?

我正在寻找一种优雅的方式来表示在格式化数字通常呈现的情况下未定义的值。我会举一个小例子。对于初学者,你当然不能使用这个:

...因为“使用警告”在第三次迭代中用“使用未初始化的值...”为您指明了方向。所以下一步是这样的:

顺便说一句,男孩,我喜欢新的 5.10 '//' 运算符吗?但这也不是我想要的,因为 $s 的值不是零,它是未定义的。我真正想要的是这样的:

...但我不能,因为这会在第三个值上产生“参数”不是数字...”问题。

这把我带到了我的问题的门口。我当然可以编写代码来检查我发出的每个数字的定义性,并创建一个完全不同的非基于 %f 的 printf 格式字符串,但是,嗯,...哎呀。

有没有人定义了一种很好的方法来处理这种类型的需求?

0 投票
4 回答
5318 浏览

perl - 如何在 Perl 中为未定义的值打印文字“null”?

我正在运行一个查询“描述表”,它为“默认”列返回“空”值。但是,当我尝试将值从数据库打印到 HTML 表时,它不会打印“null”。它总是空白。

这就是我从数据库中存储数据的方式:

当我打印数组的内容时,@nulls它从不打印'null'的字面值。它始终是空白的。有没有办法克服这个问题?

0 投票
3 回答
525 浏览

perl - 为什么这个 Perl 片段没有检测到“undef”?

由于 undef 值,我希望输入第二个“if”语句中的块,但日志显示它没有被输入。

日志文件显示:

任何想法都欣然接受。

编辑:对不起,我已经编辑了代码以显示基本流程。我应该把它校对好一点。

  • 我在 getcmd() 中添加了 $ret 来模拟日志记录函数中发生的情况,该函数只打印出 $ret 的当前值,这是一个始终用于捕获返回值的全局变量。
  • 我削减了日志消息并错过了额外的“后退”

感谢您的建议和意见。我没有注意到日志时间戳的六秒差异,所以现在我怀疑您对执行顺序与我最初预期的不同是正确的。

我回去再看看。猜猜这就是你在一天 13 个小时试图完成一个“必须在星期一上线”项目之后查看其他人的“平均”Perl 时得到的结果!

我没有编写代码,只是继承了它。该代码是由几个认为他们“不需要警告或严格”的人编写的。

想象一下 800 行 Perl 和许多“if”,但没有 else 语句!根本没有防御性编码!8-O

再次感谢您的帮助。

干杯,

0 投票
4 回答
4076 浏览

perl - 在 Perl 中,是否有手动将 undef 转换为 0 的优雅方法?

我有一个这种形式的片段:

现实更加混乱,因为涉及两个以上的变量。

我真正想写的是:

并且 undef 正确评估为 0 但我几乎在每次运行中都会收到这些警告:

使这些消息消失的最佳方法是什么?

注意:如果相关,我会“使用严格”和“使用警告”。

0 投票
1 回答
3056 浏览

perl - 在perl中分配多个值,undef的麻烦

我想从 perl 子例程返回几个值并批量分配它们。

这在某些时候有效,但在其中一个值是时无效undef

Perl 似乎连接了这些值,忽略了 undef 元素。我期待的是像 Python 或 OCaml 中的解构赋值。

有没有一种简单的方法可以将返回值分配给多个变量?

编辑:这是我现在用来传递结构化数据的方式。正如 MkV 建议的那样,@a 数组需要通过引用传递。

0 投票
3 回答
1865 浏览

doxygen - 在 doxygen 中记录#undef 的好方法

我目前有几个#define in c 文件,它们关闭了硬件的某些功能以进行测试。但是,当它们未定义时,我想用 doxygen 记录它们。

例如:

这工作正常:

当您将 #define 更改为 #undef 时,您会在 doxygen 中收到警告,并且它不会显示在 doxygen 生成的输出中。我想记录这个#define 是否已定义或未定义。

如何强制 doxygen 记录 #undef ???

0 投票
2 回答
3320 浏览

c++ - #undef C++ 的范围


我有一个关于使用#undef重新定义宏的问题。
我有一个global.h包含许多#define-d 宏的文件。在使用这些宏的代码中,我发现宏所持有的值不够通用。我想重新定义宏以使它们更通用。为此,我编写了以下代码片段:

我的问题是:
以这种方式使用#undef 是否确保在所有源文件中重新定义宏,或者它是编写上述代码行的函数的本地函数?#undef 和 #define 运算符的范围是什么?
我可以做什么(除了更改文件中的宏#define-d 本身)以确保宏定义在所有源文件中都发生更改?
谢谢,
斯里拉姆

0 投票
3 回答
637 浏览

c - 我对这个 C 预处理器语句的含义有点迷茫,

因此,首先,这是代码,将实际名称切换为通用名称以减少混淆。

这是一些源代码的片段,我一直在查看并考虑使用分叉来熟悉C编程语言的复杂性。因此,在我未经训练的眼睛看来,这似乎无济于事。对我的大脑来说,定义一些东西然后立即取消它似乎会相互抵消。

显然,我意识到我错了。但为什么我错了?