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