小编Zif*_*fre的帖子

使用C void参数"void foo(void)"或不使用"void foo()"更好吗?

什么是更好的:void foo()void foo(void)?随着虚空,它看起来丑陋和不一致,但我被告知它是好的.这是真的?

编辑:我知道一些旧的编译器做了奇怪的事情,但如果我只使用GCC,那void foo()好吗?将foo(bar);随后被接受?

c void

200
推荐指数
6
解决办法
10万
查看次数

为什么在C++中使用元组不常见?

为什么似乎没有人在C++中使用元组,无论是Boost元组库还是TR1的标准库?我已经阅读了很多C++代码,我很少看到元组的使用,但我经常看到很多地方元组会解决许多问题(通常从函数返回多个值).

元组允许你做这样的各种酷事:

tie(a,b) = make_tuple(b,a); //swap a and b
Run Code Online (Sandbox Code Playgroud)

这肯定比这更好:

temp=a;
a=b;
b=temp;
Run Code Online (Sandbox Code Playgroud)

当然你总能做到这一点:

swap(a,b);
Run Code Online (Sandbox Code Playgroud)

但是如果要旋转三个值怎么办?你可以用元组做到这一点:

tie(a,b,c) = make_tuple(b,c,a);
Run Code Online (Sandbox Code Playgroud)

元组还使得从函数返回多个变量变得更加容易,这可能是比交换值更常见的情况.使用对返回值的引用肯定不是很优雅.

我没有想到的元组有什么大的缺点吗?如果没有,为什么他们很少使用?他们慢了吗?或者只是人们不习惯他们?使用元组是个好主意吗?

c++ tuples

120
推荐指数
9
解决办法
5万
查看次数

是否有可能从管道中读取gcc?

我正在寻找一个选项,gcc它会使它从标准输入读取一个源文件,主要是因为我可以做这样的事情从flex生成C代码的工具生成一个目标文件(flex's -t选项写入生成的C到标准输出):

flex -t lexer.l | gcc -o lexer.o -magic-option-here
Run Code Online (Sandbox Code Playgroud)

因为我并不真正关心生成的C文件.

这样的事情是存在的,还是我必须使用临时文件?

command-line gcc pipe flex-lexer

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

为什么Haskell代数数据类型"封闭"?

如果我错了,请纠正我,但似乎Haskell中的代数数据类型在许多你将在OO语言中使用类和继承的情况下都很有用.但是有一个很大的区别:一旦声明了代数数据类型,它就无法在其他地方扩展.它是"封闭的".在OO中,您可以扩展已定义的类.例如:

data Maybe a = Nothing | Just a
Run Code Online (Sandbox Code Playgroud)

以后我无法以某种方式为此类型添加另一个选项而不修改此声明.那么这个系统有什么好处呢?似乎OO方式可以更加可扩展.

oop haskell types type-systems functional-programming

57
推荐指数
6
解决办法
7271
查看次数

为什么纯函数式语言不使用引用计数?

在纯函数式语言中,数据是不可变的.通过引用计数,创建引用周期需要更改已创建的数据.似乎纯函数式语言可以使用引用计数而不必担心循环的可能性.我是对的?如果是这样,他们为什么不呢?

我知道在许多情况下引用计数比GC慢,但至少它减少了暂停时间.如果暂停时间不好,可以选择使用引用计数.

garbage-collection functional-programming memory-management reference-counting purely-functional

43
推荐指数
5
解决办法
5610
查看次数

用于在UNIX计算机上查找有关CPU的信息的命令

你知道是否有一个UNIX命令会告诉我我的Sun OS UNIX机器的CPU配置是什么?我也在尝试确定内存配置.是否有一个UNIX命令会告诉我这个?

unix cpu

34
推荐指数
4
解决办法
16万
查看次数

在命令式编程之前是否应该教授函数式编程?

在我看来,函数式编程是一件好事.它消除了状态,使得自动使代码并行运行变得更加容易.

许多首先教授命令式编程风格的程序员发现学习函数式编程非常困难,因为它是如此不同.我开始怀疑那些先学习函数式编程的程序员是否会发现很难开始命令式编程.看起来它不会像其他方式那么难,所以我认为如果更多的程序员首先学习函数式编程会是一件好事.

所以,我的问题是,如果在命令式之前在学校教授函数式编程,那么,为什么从它开始并不常见?

functional-programming

31
推荐指数
4
解决办法
4078
查看次数

我应该使用Phobos还是Tango?

我决定学习D,我想知道我应该使用哪个标准库.我应该使用Phobos还是Tango?各自的优点和缺点是什么?

d tango phobos

25
推荐指数
6
解决办法
3892
查看次数

数据库查询时间复杂度

我对数据库很陌生,所以如果这是一个愚蠢的问题,请原谅我.

在现代数据库中,如果我使用索引访问行,我相信这将是O(1)复杂性.但是,如果我执行查询以选择另一列,它将是O(1)还是O(n)?数据库是否必须遍历所有行,还是为每列构建排序列表?

sql database language-agnostic big-o

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

GUID是好密码吗?

优点:

  1. 我无论如何都记不起"好"的密码所以记住它们不是问题.
  2. 它们看起来不像密码
  3. 它们几乎无法猜测(128位熵)
  4. 容易生成(卸载"好的PRNG"问题)

缺点:

  1. ???

特别是; 对于某些设置上的数据库登录计算机输入的密码怎么办?

security guid

20
推荐指数
4
解决办法
6892
查看次数