小编Vor*_*rac的帖子

为什么不可打印的ASCII字符实际上是可打印的?

不是字母数字或标点符号的字符称为不可打印:

代码20hex到7Ehex,称为可打印字符

在此输入图像描述

那么为什么例如005可以代表(并由俱乐部代表)?

ascii

7
推荐指数
1
解决办法
2万
查看次数

我看不到我的远程分支

在等待系统管理员设置gerrit repo时,我创建了自己的分支.他刚刚给我发了回购地址.我把它设置为原点并以某种方式推动了我的最后一次提交.克隆repo工作正常,但不git branch -r返回任何内容.这里发生了什么?

$ git init
# made some comits    
git config remote.origin.url ssh://gerrit.mm-sol.com/branchname

$ git push origin SH1-of-my-last-commit:master    
error: unable to push to unqualified destination: master    
The destination refspec neither matches an existing ref on the remote nor  
begins with refs/, and we are unable to guess a prefix based on the source ref.  
error: failed to push some refs to 'ssh://gerrit.mm-sol.com/apps/phone-shaker'  

$ git push origin master
Counting objects: 85, done.  
Delta compression using …
Run Code Online (Sandbox Code Playgroud)

git

6
推荐指数
1
解决办法
8083
查看次数

从gcc4.7.x中删除crt0.o背后的理由是什么?

我正在尝试升级到yagarto4.7.2(又一个GNU ARM工具链,对于那些想知道的人),这是gcc和binutils,移植到Windows.但是,尝试编译简单的Hello World会产生:

c:/yagarto-20121222/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi
/bin/ld.exe: cannot find crt0.o: No such file or directory
collect2.exe: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

现在,在这个论坛中,很明显这是启动初始化库,在gcc4.6.x之后被删除了.提出了两种解决方案:

  • 使用-nostartfiles编译
  • 将crt0.o从4.6.x复制到4.7.x文件夹

对于生产代码来说,两者看起来都很脏并且不可接受.那么有谁知道为什么这个库被删除了,它现在的等价物是什么?

gcc arm ld yagarto

6
推荐指数
1
解决办法
4878
查看次数

位域元素的默认值

在C++ 11中,人们可以做到

struct S {int i = 42;};
Run Code Online (Sandbox Code Playgroud)

每当忘记初始化成员i时,它会默认初始化为42.我只是尝试使用bitfields作为

struct S {int i = 42    : 5;};
Run Code Online (Sandbox Code Playgroud)

而且我正在

错误:预期';' 在':'标记之前

对于位域成员是否存在此功能,如果存在,我该如何使用它?

c++ bit-fields c++11

6
推荐指数
2
解决办法
2466
查看次数

Gnu Make:如何处理子项目

ProjFolder
 \ 
  Subfolder
    sources.cpp
    makefile
makefile
Run Code Online (Sandbox Code Playgroud)

Subfolder应该是一个单独的外部存储库,在检查项目时拉入。当我调用make all顶级 makefile 时,将执行以下配方:

all:  $(NAME).elf $(NAME).s19 $(NAME).hex

$(NAME).elf: $(OBJECTS) $(LDSCRIPT) Subfolder/lib.a
    make -C CppAudioPeriphs all
    @ echo "...linking"
    $(CC) $(OBJECTS) Subfolder/lib.a $(LDFLAGS) $(LIBS) -o $@
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,如果Subfolder文件的最终产品lib.a发生更改,Subfolder则会调用 makefile 来重新制作它,然后所有产品都会链接到最终的 Flash 映像中。

问题是顺序。我想总是首先调用子makefile。它知道何时以及如何重制lib.a。然后检查是否lib.a被修改以确定是否重新制作$(NAME).elf。


这是一种解决方案。

.PHONY all $(NAME).elf
Run Code Online (Sandbox Code Playgroud)

这只是指示make无论如何都要重新制作 $(NAME).elf 。我过去曾在小型项目中使用过这种解决方案,但对于当前的项目来说,这是不可接受的。

c++ makefile gnu-make

6
推荐指数
1
解决办法
2513
查看次数

为什么errno,当POSIX函数通过返回-1或NULL指示错误条件时

当其中一个UNIX系统函数发生错误时,通常会返回负值,并将整数errno设置为一个值,从而提供其他信息. - UNIX环境中的高级编程,第1.7节

这看起来很奇怪:

  • 它引入了标准库的不同编译单元之间的耦合 - 错误状态未在导致它们的模块中定义.
  • 它引入了实现复杂性,因为errno需要是线程本地的.
  • 它引入了可用性复杂性,因为用户需要检查原始系统调用是否有错误,然后检查errno哪个也是另一个函数调用.

为什么不在返回值中编码错误状态?

c posix errno

6
推荐指数
2
解决办法
636
查看次数

是否存在私有公共虚拟方法的用例?

#include <iostream>

struct A
{
    virtual void foo(){ std::cout << "A"; };
};

struct B : public A
{
private:
    void foo() override { std::cout << "B"; }
};

int main()
{
    A *p = new B;
    p->foo();      // prints B

//    B b;
//    b.foo();     // error: foo is private
    return 0;
}

// g++ -std=c++11 -Wall -Wextra -Wpedantic main.cpp && ./a.out
Run Code Online (Sandbox Code Playgroud)

所以我们可以B.foo()多态地调用,但不能直接调用.当有人想要使用此功能时,是否有任何用例?

visibility c++11

6
推荐指数
2
解决办法
210
查看次数

这是什么类型的?

Haskell新手在这里.我从类型类中知道=>"在上下文中".但是,我无法读取模块Statistics.Sample中的以下类型

(Vector v (Double, Double), Vector v Double) => v (Double, Double) -> Double
Run Code Online (Sandbox Code Playgroud)

v左边有什么限制条件=>?

haskell types constraints

6
推荐指数
1
解决办法
120
查看次数

枚举值是在预处理时间还是在编译时解决的?

枚举值何时解析?换句话说,以下代码片段是否符合标准?

enum{
    A,
    B,
    MAX
}

#if MAX > 42
#    error "Woah! MAX is a lot!"
#endif
Run Code Online (Sandbox Code Playgroud)

c c11

5
推荐指数
1
解决办法
2695
查看次数

关于指针比较,标准中的措辞比较奇怪

§6.5.8\ 6(关于>,<,<=,> =)

如果表达式P指向数组对象的元素并且表达式Q指向同一数组对象的最后一个元素,则指针表达式Q + 1比P大.在所有其他情况下,行为未定义.

上面的几节,§6.5.8,基本上解释了指针算法在数组上的预期工作.那int a[3]; int *p = a; int *q = &a[2]; //q-p == 3是有效的.但是,正如我上面读到的那样q > p是UB.

我错过了什么?

c pointers language-lawyer c11

5
推荐指数
1
解决办法
249
查看次数

标签 统计

c ×3

c++ ×2

c++11 ×2

c11 ×2

arm ×1

ascii ×1

bit-fields ×1

constraints ×1

errno ×1

gcc ×1

git ×1

gnu-make ×1

haskell ×1

language-lawyer ×1

ld ×1

makefile ×1

pointers ×1

posix ×1

types ×1

visibility ×1

yagarto ×1