小编hio*_*obs的帖子

为什么COBOL必须缩进?

为什么COBOL必须缩进,因为在每个源文件中都有额外的间距?

考虑这段代码(注意额外的空格):

  IDENTIFICATION DIVISION.
  PROGRAM-ID. HELLO-WORLD.
  PROCEDURE DIVISION.
      DISPLAY 'Hello, world'.
      STOP RUN.
Run Code Online (Sandbox Code Playgroud)

在Fortran代码中可以看到类似的格式:

   program hello
      print *, "Hello World!"
   end program hello
Run Code Online (Sandbox Code Playgroud)

但为什么COBOL和Fortran需要这个空白?什么原因?

cobol fortran code-formatting

12
推荐指数
1
解决办法
5675
查看次数

不使用*printf打印数字

是否可以打印(到stdout,或文件)的数量(int,float,double,long,等)实际上并没有使用任何的*printf功能(printf,fprintf,sprintf,snprintf,vsprintf,...)?

c

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

在.git/config中包含你的googlecode密码是危险的吗?

因为我的.netrc文件的技巧不起作用(即使它有正确的文件权限),我修改我的本地.git/config就像这样:

[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = https://<username>:<password>@code.google.com/p/<project>/
Run Code Online (Sandbox Code Playgroud)

我立即克隆了回购,检查密码是否仍然包含在内,但事实并非如此.

我还有一个在github上托管的镜像,如果它很重要的话.

那么它有危险吗?

git google-code

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

为什么Go使用自己的Code生成器?

Go的当前官方编译器(http://code.google.com/p/go/)目前使用手工制作的,可以说是神秘的代码生成器,其中包括将自定义部分注入ELF二进制文件.

这种方法产生了很多与直接读取和/或写入ELF信息的实用程序相关的错误,例如ldd,objdumpstrip.

我相信这可以通过使用经过良好测试的跨平台代码生成器(例如LLVM)来防止,然后只使用OS附带的链接工具,例如ld在Unix/Linux(或ld.exe在Windows link.exe上使用MinGW),或在Windows上使用视觉工作室.

那么为什么Go使用它自己的代码生成器呢?它真的只是重新发明轮子吗?或者背后有更重要的原因吗?

code-generation elf go

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

如何在xpressive中迭代命名组?

说我有一个sregex像这样的对象:

boost::xpressive::sregex::compile("(?P<firstword>\\w+) (?<secondword>\\w+)!");
Run Code Online (Sandbox Code Playgroud)

我没有在xpressive文档中找到任何关于此的参考,尽管xpressive支持命名组就好了.

我知道可以通过组迭代很好,但是如何访问组名(如果组有名称)?

那么,我将如何遍历命名组?

c++ regex boost boost-xpressive

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

链接列表以错误的顺序返回值

我已经(尝试)编写了一个LinkedList,但是,当我遍历列表中的所有元素时,这些项目的输出顺序与插入的顺序不同.

说,我这样插入:

slist_insert(list, "red");
slist_insert(list, "green");
slist_insert(list, "blue");
slist_insert(list, "yellow");
slist_insert(list, "pink");
slist_insert(list, "purple");
slist_insert(list, "beige");
slist_insert(list, "white");
slist_insert(list, "black");
slist_insert(list, "brown");
slist_insert(list, "fuchsia");
slist_insert(list, "aqua");
slist_insert(list, "magenta");
Run Code Online (Sandbox Code Playgroud)

但是在循环中,这取代了:

green
magenta
aqua
fuchsia
brown
black
white
beige
purple
pink
yellow
blue
red
Run Code Online (Sandbox Code Playgroud)

请注意,我之前没有这样做过,所以这个代码很可能充满了与链接列表算法相关的元素错误:http://codepad.org/Sl0WVeos

这样的代码工作正常,但有几件事让我烦恼:

  • 错误的订单产生(如上所述)
  • 必须使用宏(有更好的方法来做到这一点吗?)
  • 即使在打电话之后slist_destroy,仍有内存泄漏,我无法弄清楚它来自何处

帮助真的很感激!

c memory-leaks linked-list

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