我知道.OBJ是编译一个编译单元的结果,而.LIB是一个静态库,可以从几个.OBJ创建,但这种差异似乎只是在编译单元的数量.还有其他区别吗?是相同还是不同的文件格式?
当想知道在链接到最终可执行文件期间是否合并了两个(或更多).LIB中定义的相同静态变量时,我遇到了这个问题.对于.OBJ,变量是合并的.但是在.LIBs中它是一样的吗?
我试图让自己熟悉丰富的Web应用程序世界.维基百科上有一些可用技术的比较表,但我仍然不清楚丰富的应用程序开发有哪些选项.
您可以验证并填写我在下面收集的信息吗?每个选项的主要优点和缺点是什么?哪个是大型和非常丰富的Web应用程序的最佳选择?
选项1:ASP.NET/ASP.NET MVC
供应商:Microsoft
环境:Visual Studio
语言:C#
输出:HTML + JavaScript + AJAX
示例:www.stackoverflow.com
选项2:Silverlight
供应商:Microsoft
环境:Visual Studio
语言:C#
输出:.NET可执行文件?
示例:?
选项3:Google Web Toolkit
供应商:Google
环境:Eclipse
语言:Java
输出:HTML + JavaScript + AJAX
示例:http://www.projectkaiser.com:8080/pk /
选项4:Flex
供应商:Adobe
环境:?
语言: ?
输出:Flash(.swf文件)
示例:http://listen.grooveshark.com/
选项5:Adobe AIR
供应商:Adobe
环境:?
语言: ?
输出:AIR
示例:http://www.cocoolo.com/en/download.html
选项5:Ruby on Rails
供应商:Rails Core Team
Envirnoment :?
语言:Ruby
输出:HTML + JavaScript + AJAX?
示例:?
选项6:Java Applet
供应商:Sun
环境:Eclipse
语言:Java
输出:Java …
我想知道弱引用是如何在内部工作的,例如在.NET或Java中.我的两个一般想法是:
这些解决方案中的任何一个看起来既干净又效 有谁知道它是如何实际完成的?
为了简化问题,我想说我想a / (b - c)在floats 上计算表达式.
为了确保结果是有意义的,我可以检查b和c是相等的:
float EPS = std::numeric_limits<float>::epsilon();
if ((b - c) > EPS || (c - b) > EPS)
{
return a / (b - c);
}
Run Code Online (Sandbox Code Playgroud)
但是我的测试表明,如果可能的话,不能保证有意义的结果,也不能不提供结果.
a = 1.0f;
b = 0.00000003f;
c = 0.00000002f;
Run Code Online (Sandbox Code Playgroud)
结果:不满足if条件,但表达式将生成正确的结果100000008(与浮点数的精度相同).
a = 1e33f;
b = 0.000003;
c = 0.000002;
Run Code Online (Sandbox Code Playgroud)
结果:满足if条件,但表达式不会产生有意义的结果+1.#INF00.
我发现检查结果更可靠,而不是参数:
const float INF = numeric_limits<float>::infinity();
float x = a / (b - c); …Run Code Online (Sandbox Code Playgroud) 考虑两个名词,这自然将英语最经常出现的形式"的化合物名词的名词 ",例如,"的光的方向","过滤器的输出".编程时,我们通常会编写"LightDirection"和"FilterOutput".
现在,我有复数名词的问题.有两种情况:
1)单数的复数
例如"(两个)集合的联合","(两个)段的交集"
哪个是正确的,SetUnion和SegmentIntersection或SetsUnion和SegmentsIntersection?
2)复数的复数
有两个子类:
(a)许多要素,每个要素都有许多相关要素,例如"过滤器的输出"
(b)许多元素,每个元素都有单一的相关元素,例如"向量的方向"
我应该使用FilterOutputs和VectorDirections或FiltersOutputs和VectorsDirections吗?
我怀疑第一个版本是正确的(FilterOutupts,VectorDirections),但我认为这可能导致歧义,例如
一般规则是什么,我应该遵循?
我试图用C++实现一个定点类,但我遇到性能问题.我已经将问题简化为浮点类型的简单包装,它仍然很慢.我的问题是 - 为什么编译器无法完全优化它?
'float'版本比'Float'快50%.为什么?!
(我使用Visual C++ 2008,测试了所有可能的编译器选项,当然是Release配置).
请参阅以下代码:
#include <cstdio>
#include <cstdlib>
#include "Clock.h" // just for measuring time
#define real Float // Option 1
//#define real float // Option 2
struct Float
{
private:
float value;
public:
Float(float value) : value(value) {}
operator float() { return value; }
Float& operator=(const Float& rhs)
{
value = rhs.value;
return *this;
}
Float operator+ (const Float& rhs) const
{
return Float( value + rhs.value );
}
Float operator- (const Float& rhs) const …Run Code Online (Sandbox Code Playgroud) 我无法理解使用XML注释的优点.我知道它们可以转换成代码外部的漂亮文档,但使用更简洁的DOxygen语法可以实现相同的目标.在我看来,XML注释是错误的,因为:
那可能是什么原因,为什么XML在.NET中更受欢迎而不是简单的DOxygen语法?
如同主题......或更好 - 如何在顶部窗口更改时从事件中获取此信息?
我将为德州仪器DaVinci平台编写一些图像处理程序.有适合C语言编程的工具,但我想知道是否真的可以在不使用汇编语言的情况下充分利用DSP处理器.你知道在这个DSP平台上用C语言编写的程序和汇编程序之间的速度比较吗?
performance assembly signal-processing texas-instruments davinci
c++ ×3
c# ×2
performance ×2
.net ×1
assembly ×1
comparison ×1
davinci ×1
doxygen ×1
epsilon ×1
fixed-point ×1
internals ×1
java ×1
linker ×1
object-files ×1
optimization ×1
process ×1
swap ×1
vector ×1
windows ×1
xml-comments ×1