小编Sam*_*Sam的帖子

单字节布尔.为什么?

在C++中,为什么bool需要一个字节来存储true或false,其中只有一个位足够,例如0表示false,1表示true表示?(为什么Java也需要一个字节?)

其次,使用以下内容会更安全多少?

struct Bool {
    bool trueOrFalse : 1;
};
Run Code Online (Sandbox Code Playgroud)

第三,即使它是安全的,上述现场技术真的会有所帮助吗?因为我听说我们在那里节省空间,但是编译器生成的代码访问它们比访问基元所生成的代码更大更慢.

c++ java performance primitive boolean

41
推荐指数
4
解决办法
6911
查看次数

K和R练习1-22

我正在使用Kernighan和Ritchie的C编程语言编写程序.

我目前正在练习1-22说:

编写一个程序,last > non-blank character在输入的第n列之前,将长输入行"折叠"成两条或更多条较短的行.确保您的程序在非常长的行中执行智能操作,并且如果在指定列之前没有空格或制表符.

我的问题不是如何做程序...我的问题是我应该在哪里折叠线.

那个"在最后一个非空白字符之后"是什么意思?我应该在哪里折线?

请大家不要告诉我程序本身.我想自己做.

我只是想知道我应该折叠线的地方.

编辑:还有另一个问题......

如果我的行包含tabs什么?在这种情况下,线的列长度从字符长度开始增加.应该考虑哪个长度?

编辑2:

聪明的东西......为了解决标签的问题,我有个主意......

在1-22 - 1-20和1-21之前有2次运动.哪些是entab和detab ...你们一定要知道......所以我先将线条分开然后将它折叠然后折叠折叠的线条......我认为这对于标签来说是最聪明的.任何人?

c

10
推荐指数
1
解决办法
1302
查看次数

realloc:glibc检测到的下一个大小无效

我的代码:

int args_size = 5;
char** args;

args = (char**) malloc(sizeof(char*) * args_size);

// ...

args = (char**) realloc(args, sizeof(char*) * (args_size += 5));

我想把尺寸增加5.

但我得到这个错误:

*** glibc detected *** ./a.out: realloc(): invalid next size: 0x0000000000a971c0 ***

我知道一个临时变量捕获realloc是好的,但只是为了简单...

c size realloc dynamic-arrays

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

调试器如何知道源代码中的行号?

像Eclipse,NetBeans,Visual Studio等中的调试器

我想知道,因为调试器在执行时会对机器代码进行操作......他们如何跟踪源代码中的行号?

跟踪行号是不是很困难,因为高级指令可能有一堆机器语言指令而另一个可能没有机器语言指令(可能因为它只支持另一个高级指令)?

debugging line-numbers

4
推荐指数
1
解决办法
564
查看次数

如何使用write系统调用将int写入文件并完全按照写入方式读取它们?

如何使用UNIX的write系统调用将int,float或其他类型写入文件?我想这样做,而不使用像fprintf或或任何lib函数fwrite.

我想使用文件描述符而不是FILE*.

再次打开后,必须完全按照写入的方式读取文件,而无需知道要读取的大小.

c unix file-io printf system-calls

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

superClass的私有成员是否由子类继承... Java?

我经历过这个:

子类是否继承私有字段?

但我还是很困惑......

我说的只是继承而不是访问.我知道他们在副班上并不明显.

但是子类'对象是否拥有超类中那些私有成员的自己的副本?

例如...

class Base {
    private int i;
}

class Derived extends Base {
    int j;
}
Run Code Online (Sandbox Code Playgroud)

现在,

Base b = new Base();
Derived d = new Derived();
Run Code Online (Sandbox Code Playgroud)

int的大小是4

现在,

b的大小是4,d的大小是8

要么

d的大小也只有4?

当然,当我说b和d而不是引用时,我正在谈论堆上的对象.

更新:我刚刚阅读了Kathy Sierra和Bert的SCJP书......它说它们不是继承的......我发布了这个更新,因为仍然有很多人说是的...

java inheritance private access-control access-specifier

3
推荐指数
1
解决办法
5927
查看次数

压缩和加密......首先应用哪个?

我正在C中进行远程备份项目...我想发送数据和压缩以及加密数据.

但是我很困惑是先压缩还是先加密!

什么会更好?:

  1. 压缩数据然后加密
  2. 加密数据然后压缩它

此外,我将使用zlib进行压缩.我想知道使用哪种加密库...有人说libgcrypt很好.建议好的加密库(非常容易使用)将不胜感激... :)

或者有什么可以完成这两项工作吗?

谢谢!

compression encryption libgcrypt

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

实现C预处理器

我正在实现一个C预处理器......

在Wiki上,我发现了它的以下功能......

  • Trigraph替换
  • 线拼接
  • 符号化
  • 宏扩展和指令处理
  • 文件包含

我的问题:

  • 我错过了任何功能吗?
  • 上述功能的正确执行顺序是什么?(即在今天的实际预处理器之前做了什么?)

如果有人知道任何关于它的标准文档,请同时提及.

c c-preprocessor

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