Tag: 混合

混合程序(.asm + .cpp):修改小数学程序的代码以包含浮点输入

(Intel x86.TASM和BorlandC编译器,以及TLINK使用。) 在main1.cpp ,程序接受int输入(直到输入小于-999999的数字),将其放入数组x[] ,将输入数量放入数组的第0个元素,将数组的指针发送到f1.asm ,添加数字,并将结果返回到main1.cpp以便显示它。 如何修改它以包含浮点数作为输入? 我的具体问题: 当我将int转换为float ,输入在f1.asm的偏移量的f1.asm发生变化,而我找不到它; .asm浮点数的数学运算。 (我无法理解我在其他地方找到的.asm花车的解释。) 先感谢您。 main1.cpp: #include #include #include extern “C” int f1( int* x ); int main() { int x[100], i ; for( i = 1 ; x[i-1]>=-999999 ; i++ ) { cout << "x[" << i <> x[i] ; // Input elements while they’re >= […]

混合编程Fortran和C.

我是理论物理研究专业的学生,​​从事宇宙学研究。 在我的研究过程中,我使用了相当庞大的Fortran代码库,并使用C来满足我的编程需求。 我已经能够在众多测试文件中链接这两个程序,并且它们的工作非常出色。 但对于他们来说,我一直在使用目标文件将它们全部链接起来。 但是当我尝试通过C运行真正的交易时,包括对Fortran头文件的引用。 它们似乎集成并相互调用,但Fortran头文件的格式与C编译器不兼容,因此当它跳转到头文件时,它会开始抛出无法理解语法的错误。 例如,Fortran头文件使用real * 8定义双变量,因此当C读取它们时会抛出错误。 文件中的注释也是如此。 所以,我想问一下,有什么方法可以解决这个问题吗? 即通过C使fortran格式头文件可读。 我查看了互联网,发现了令人困惑的答案,我不知道应该遵循哪一个。 任何有关此事的帮助将不胜感激:)

混合16位线性PCM流并避免削波/溢出

我试图将2个16位线性PCM音频流混合在一起,我似乎无法克服噪音问题。 我认为将样品混合在一起时它们会溢出。 我有以下function…… short int mix_sample(short int sample1, short int sample2) { return #mixing_algorithm#; } ……这就是我尝试过的#mixing_algorithm# sample1/2 + sample2/2 2*(sample1 + sample2) – 2*(sample1*sample2) – 65535 (sample1 + sample2) – sample1*sample2 (sample1 + sample2) – sample1*sample2 – 65535 (sample1 + sample2) – ((sample1*sample2) >> 0x10) // same as divide by 65535 其中一些产生了比其他产品更好的效果,但即使是最好的结果也包含了很多噪音。 任何想法如何解决?

在C ++代码中使用/混合C?

在C ++中使用C是不是很糟糕? 很多人告诉我在C ++中使用C是不好的,因为它不那么安全,而且需要更多的内存管理。 我一直告诉他们,只要你知道你在做什么,你删除你的“新”并释放你的“malloc”,那么C不是问题。 我目前正在一个论坛上发生关于std::string与char*的争论。 有些人说分配一个简单的char*内存块效率更高,只要你解除分配它就没问题了。 另一方面,我们有人说std::string是优越的,因为它没有涉及内存管理,但效率较低。 所以这里的主要问题是: 混合C / C ++坏吗? 在编写C ++时,你是否只能使用100%C ++? 任何答案将不胜感激!