我只是在玩gcc(g ++)和compilerflags -msse和-msse2.我有一个小测试程序,看起来像这样:
#include <iostream>
int main(int argc, char **argv) {
float a = 12558.5688;
float b = 6.5585;
float result = 0.0;
result = a * b;
std::cout << "Result: " << result << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我使用以下语句编译它时:
/usr/local/bin/g++-4.9 -W -msse main.cpp -o testsse
Run Code Online (Sandbox Code Playgroud)
和
/usr/local/bin/g++-4.9 -W -msse2 main.cpp -o testsse2
Run Code Online (Sandbox Code Playgroud)
输出文件是二进制相等的.但是由于SMID标志,我预计它们不一样.
所以我的问题是,那些编译器标志对二进制文件没有任何影响吗?我在OS X 10.10.3和Fedora 21上测试过它.
谢谢你的帮助.
亲切的问候
法比安
我如何知道C#中的类是否是非托管的,因此如果我在自定义类中使用它,我知道是否必须实现IDisposable接口?
如果我在MSDN网络上得到这篇文章,我总是必须在使用非托管资源时实现IDisposible接口.
所以我创建了一个你可以在下面找到的小例子:
class TestClass
{
private StreamReader reader;
public UsingTestClass()
{
reader = File.OpenText("C:\\temp\\test.txt");
string s;
while (!string.IsNullOrEmpty(s = reader.ReadLine()))
{
Console.WriteLine(s);
}
}
}
Run Code Online (Sandbox Code Playgroud)
以下MSDN文章说,例如,File是一个无人值守的资源,它也在我的测试类中使用.那么我怎么看,这个课程是无人的?编译器和ReSharper没有抱怨任何东西.
提前致谢.