ISO/IEC 9899:2011§5.2.4.2.210(p48)说:
是否存在次正规数的特征是FLT_HAS_SUBNORM,DBL_HAS_SUBNORM和LDBL_HAS_SUBNORM的实现定义值:
-1不确定
0缺席(类型不支持次正规数)
1存在(类型支持次正规数)
什么了!所以在某些平台上我不能写double d = 33.3?或者编译器会自动将其转换为333E-1?存在或不存在非标准化浮点数的实际意义是什么?
我目前正在通过一些不同的来源学习c,其中一个是学习C硬道路PDF和Cprogramming.com获得额外的功劳,它说要使用全部:在Makefile中.我目前正在使用Kali Linux,vim用于我的编辑器,到目前为止,我的Makefile看起来像这样.
CFLAGS=-Wall -g
clean: "this is on the next line with a Tab in--->"
rm -f ex1
Run Code Online (Sandbox Code Playgroud)
我只是想了解语法并将所有内容:以及如何添加到它中.它说,我的下一个项目EX3添加到all:和clean我的Makefile中,如果有人可以解释这一点更好,我会非常感激,因为我不想没有理解所有的额外信贷跳跃前进.
如果你需要一个参考点,我是在LearnCTheHardWay的第三课.我刚开始用C语言使用Linux.感谢您的时间和任何答案.
我有以下设计:
class PureVirtual
{
unsigned m_count; // = 0 in constructor
void register() {assert(m_count + 1 <= MAX); m_count++;};
};
class A : public PureVirtual
{enum {MAX = 42}};
Run Code Online (Sandbox Code Playgroud)
除了PureVirtual不知道MAX.
我使其工作的方式是创建m_max成员PureVirtual,然后将其初始化为一个愚蠢的值(因为gcc如果成员未在构造函数中初始化则发出警告),然后在构造函数中设置它A.而"最好"的部分是它无法制造const.
什么是最好的方法?
我有std::vector一定的大小,需要将另一个向量(大小为34)的内容分配给位置34 ... 67.原始向量的大小不应该改变.看看矢量的API
assign()不起作用,因为它取代了所有元素.
swap()不起作用,因为它取代了所有元素.
emplace()不起作用,因为它创建了一个新元素.
memcpy(target.data [34],source.data(),34*sizeof(T))可以在没有循环的情况下工作,但看起来像是一个C hack.
std :: copy可以很好地工作,但隐藏循环我希望它比memcpy()慢.
元素是整数.在更改向量中的元素范围时,哪个应该是默认方法?
struct I {
virtual void foo() = 0;
virtual void bar() = 0;
};
struct A {
void foo(){};
};
struct B: public A, public I {
void bar(){};
};
Run Code Online (Sandbox Code Playgroud)
这个伪代码应该在C++中有效吗?目前我foo()在链接时收到未定义的引用错误.
如果这不起作用,请推荐一种技术来创建一个接口,该接口通过继承实现,如示例所示.
我在我当地的master分支机构做了一些提交.现在我想扔掉它们并最终得到等于的状态origin/master.
我不愿意git reset --hard,因为这些提交是另一个分支的快速合并的结果,所以我和远程提交是混合的.
目前我唯一能想到的解决方案是
git fetch
git checkout origin/master
git branch -D master
git checkout -b master
git remote origin/master
Run Code Online (Sandbox Code Playgroud)
肯定有更快的方法吗?
这是C和C++之间边界层上的一行函数.该函数获取了一堆void*
并将它们转换为它们应该存在的类型.发现错误:
MDLPeriph periph_dline = *static_cast<MDLPeriph*>(dline_periph);
Run Code Online (Sandbox Code Playgroud)
确实,periph_dline应该是一个参考.让我感到困惑的是,这段代码在没有警告的情况下编译.此外,gdb在检查此代码时,报告Internal GDB error.和崩溃.
据我所知,上面的代码默认构造了一个MDLPeriph对象.然后使用新对象的复制构造函数从右侧分配值.
但是MDLPeriph没有默认构造函数!这怎么可能?
平台和工具:
Windown 7
yagarto的这个版本使用以下版本:binutils:2.23.1 gcc:4.7.2 newlib:1.20.0 gdb:7.5.1
(2012年12月22日,mifi)openocd o.7.0
c++ ×4
c ×2
c11 ×1
constructor ×1
git ×1
inheritance ×1
makefile ×1
polymorphism ×1
python ×1
stl ×1
vector ×1