小编Jay*_*Jay的帖子

在Windows中将__int64转换为long

如何在Windows(MSVC8和MSVC6)中将__int64转换为long?

正常的类型转换会有效吗?

另外,如何将long转换为__int64?如果long是负值,它会起作用吗?

注 - 我说的是__int64变量总是包含一个不超过32位长的值的场景.

c windows casting int64

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

指针算术和签名/无符号转换!

包含指针算术,是否会自动转换为有符号变量的整数?如果是,为什么?

假设我这样做

int *pointer; 
int *pointerdiff;
unsigned int uiVal = -1;

pointerdiff = pointer + uiVal // Pointer will contain valid address here.
Run Code Online (Sandbox Code Playgroud)

其中指针是指向int的指针,uiVal初始化为-1,然后我发现指针中的地址减少了4.为什么这里没有考虑无符号值-1?

c pointer-arithmetic

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

全局变量如何影响可执行文件的大小?

是否有全局变量会增加可执行文件的大小?如果有,怎么样?它是仅增加数据部分大小还是增加文本部分大小?

如果我有一个全局变量和初始化如下:

char g_glbarr[1024] = {"jhgdasdghaKJSDGksgJKASDGHKDGAJKsdghkajdgaDGKAjdghaJKSDGHAjksdghJKDG"};
Run Code Online (Sandbox Code Playgroud)

现在,这是否将1024添加到数据部分,并将启动字符串的大小添加到文本部分?

如果相反,如果静态地为这个数组分配空间,如果我malloc它,然后做一个memcpy,只有数据部分大小会减少或文本部分大小也会减少?

c size vxworks

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

在 OpenSSL 中配置时如何指定私有 OID 值的语法?

我有以下与 OpenSSL Private OID 支持相关的问题:

  1. 通过浏览互联网上的 openssl 配置和其他工件,我发现 OpenSSL 支持配置私有 OID,但我不清楚如何指定与这些 OID 关联的属性值的语法?
  2. 我是否可以将我配置的私有 OID 仅用于证书的主题名称或颁发者名称,而不用于其他字段或任何其他对象?

openssl oid asn.1

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

提取由数字中的特定位组表示的值

如何提取给定数字中特定位组所代表的值,即如果位11,12和13是1,1,0则该值应为6.

做同样事情最有效的方法是什么?此外,它应该是通用的.我应该能够给出开始和结束位位置,并且应该能够提取起始位置和结束位置之间存在的位所代表的值.

例如:00000000 00000000 01100000 00011111

对于上面的数字,考虑到第0位来自右端,如果我给出这个数字,0作为起始位置,2作为结束位置,那么我应该得到值7.

另外,对于上述问题,我们如何处理字节序?

c bit-manipulation endianness

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

与对齐有关的问题

在函数中的局部范围内声明时,将所有相同类型的变量组合在一起是一种好的做法吗?如果是,为什么?它是否解决了内存对齐问题?

c alignment

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

如何保护基于C的库的init函数?

我已经编写了一个基于C的库,并且它可以并行地在多线程中工作,我在init函数中创建了一些全局互斥.

我希望在多线程中使用库API之前,在主线程中调用init函数.

但是,如果直接在多线程中调用init函数本身,那么这是一个问题.有没有办法保护我的库中的init函数本身?我能想到的一种方法是让应用程序创建一个互斥锁并保护对我的init函数的并行调用,但是我可以保护它免受我的库本身的影响吗?

c synchronization

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

在阻塞recv呼叫的情况下,如果对等端系统重新启动,则呼叫不会出现recv.为什么?

当我的代码处于阻塞recv调用中时,如果另一方重新启动,那么这个侧面的recv调用无法了解它并且只是进入挂起状态.

怎么避免这个?

c sockets

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

calloc和malloc之间有什么区别,后面跟着一个memset?

可能重复:
c malloc和calloc之间的区别
为什么malloc + memset比calloc慢?

calloc和malloc之间有什么区别,后面跟着一个memset?如果我用malloc替换所有对calloc的调用,后跟memset,它会是一样吗?

如果是这种情况,那么为什么单独提供两个函数malloc&calloc?

c malloc calloc

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

有没有办法检查是否为小端或大端架构构建了库而不执行它的代码?

有没有办法检查是否为小端或大端架构构建了库而不执行它的代码?

让我们说,我有一个库X,但是,我不知道它是否是为小端或大端构建的,是否有任何命令或有没有办法通过构建输出找出如果库已经构建对于小端或大端?或者是否可以将此信息放入库中?

c endianness

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