调试使用(C或C ++)的程序时,gdb
会将复数显示为_M_value = xxx + yyy*I
(类型为complex double
)。
调试时,我需要打印该数字乘以一个因子。
以下无法工作:
print a * 8.0
我得到Argument to arithmetic operation not a number or boolean
。
另外,我无法访问实部和虚部,以便我可以编写一个gdb宏来执行上述操作。我目前的解决方案是编写一个C函数来处理复杂的值和数组,并从gdb调用该函数。不知何故,这感觉不对。
答案 0 :(得分:3)
如果使用标准C ++复杂模板,那么complex :: real()和complex :: imaj()应该可以工作。
MY2C
注意:是评论^^
答案 1 :(得分:0)
您可以调用C库函数creal()
和cimag()
来细分数字。