小编Car*_*s00的帖子

Char与字节数组的unsigned char

当存储"字节数组"(blobs ...)时,使用char或更好地使用unsigned char项目(unsigned char又名uint8_t)?(标准说sizeof两者都是1字节.)

它有关系吗?或者一个比另一个更方便或更普遍?也许,像Boost这样的图书馆会用到什么?

c++ gcc c++11

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

ViewModel和Singleton模式

我有一个ViewModel用于枚举处理(实体框架中的实体很少).

1)哲学上,对这个ViewModel使用SINGLETON PATTERN是一个好习惯,因为它在所有应用程序中都很普遍,而且它在许多地方使用.

2)ViewModel(及相关ObjectContext)长时间存在不是问题吗?

谢谢!

.net c# entity-framework mvvm

8
推荐指数
1
解决办法
9362
查看次数

Haskell中的并行计算

当我运行这个Haskell片段时,它只能加载1个CPU.这两个fg是非感,但不应该使用它时加载两个CPU?编译为ghc -O2 snippet.hs.

f x = 1 + (f $! x)
g x = 5 + (g $! x)

z = a `par` b `seq` a+b
        where
        a = f 3
        b = g 5

main = do
    print z
Run Code Online (Sandbox Code Playgroud)

parallel-processing haskell ghc

8
推荐指数
1
解决办法
280
查看次数

Haskell和低级IO操作

在Haskell中如何实现套接字,管道和文件IO等低级内容?我猜这些IO方法在Haskell中不是原生的,但是Haskell会快速包装一些低级C库,是不是?

linux haskell ghc

8
推荐指数
1
解决办法
475
查看次数

总结一大堆数字太慢了

任务:"总计前15,000,000个偶数."

哈斯克尔:

nats = [1..] :: [Int]
evens = filter even nats :: [Int]

MySum:: Int
MySum= sum $ take 15000000 evens
Run Code Online (Sandbox Code Playgroud)

......但MySum需要很长时间.更确切地说,比C/C++慢大约10-20倍.

很多时候我发现,自然编码的Haskell解决方案比C慢10倍.我预计GHC是一个非常优化的编译器和任务,这样看起来并不那么难.

所以,人们会期望比C慢1.5-2倍.问题出在哪里?

这可以更好地解决吗?

这是我用它比较的C代码:

long long sum = 0;
int n = 0, i = 1;

for (;;) {

  if (i % 2 == 0) {
    sum += i;
    n++;
  }

  if (n == 15000000)
    break;

  i++;
}
Run Code Online (Sandbox Code Playgroud)

编辑1:我真的知道,它可以用O(1)计算.拜托,抗拒.

编辑2:我真的知道,evens [2,4..]只是功能even可能是其他功能O(1),需要作为一个功能来实现.

haskell ghc

8
推荐指数
3
解决办法
1623
查看次数

为什么不懒惰

我还在开始探索Haskell.我知道这个代码在IOmonad中"运行" .当它从l <- ...行到下一行时,IO - bind调用它.

人们可能会认为,因为Haskell 很懒,所以l从未评估过.但是" bind"总是评估上一个命令,是吗?因为程序产生"文件未找到"错误.

main = do
    l <- mapM readFile [ "/tmp/notfound" ]
    return ()
Run Code Online (Sandbox Code Playgroud)

haskell ghc

8
推荐指数
2
解决办法
311
查看次数

C++ 11中的纯函数

C++ 11中的gcc一个可以用某种方式标记一个函数(不是类方法),const因为它告诉它是纯粹的并且不使用全局内存而只使用它的参数吗?

我试过gcc__attribute__((const)),这是正是我想要的.但是当在函数中触摸全局内存时,它不会产生任何编译时错误.

编辑1

请小心.我是指纯粹的功能.不是恒定的功能.GCC的属性有点令人困惑.纯函数只使用它们的参数.

c++ gcc c++11

8
推荐指数
1
解决办法
4733
查看次数

链接Visual C再次使用MinGW的静态库

如何将Visual C++(2010)控制台应用程序与由MinGW(*.a格式)创建的STATIC库链接?它与Visual C++ 2010兼容吗?

谢谢.

c mingw static-libraries visual-studio-2010 visual-c++

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

自动化C单元测试

我有一个用MinGW,Eclipse C项目编译的C库.库包含许多模块,每个模块都可以进行测试.

什么是最好的方法(使用MACROS或其他东西)如何为这个库编写测试,在Eclipse/CDT IDE中编译运行它?

编辑:我见过有人用过

#ifdef TEST

int main(void)
{
   ...TEST LOGIC...
}
#endif
Run Code Online (Sandbox Code Playgroud)

但不知道如何将其插入Eclipse.

c eclipse gcc unit-testing mingw

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

在GCC中将C++链接到C

extern "C" int ping(void)在C++"静态库"项目中有一个函数.现在,我想写一个简单的Hello-World C程序来调用这个函数int x = ping();.

我使用,g++ / gcc但我无法将C可执行文件与C++共享库链接.拜托,怎么能这样做?你能提供准确的gcc命令吗?

编辑:

g++ -c -static liba.cpp
ar rcs liba.a liba.o
gcc -o x main.o -L. -la
Run Code Online (Sandbox Code Playgroud)

得到:

./liba.a(liba.o):(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
Run Code Online (Sandbox Code Playgroud)

collect2:ld返回1退出状态

c c++ linker gcc g++

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