小编SOD*_*IMM的帖子

SSE,AVX不缺少?

这是我的想象力,还是PNOTSSE和AVX失踪的指令?也就是说,翻转向量中的每一位的指令.

如果是,是否有比PXOR使用所有1的向量更好的模拟方法?非常烦人,因为我需要设置所有1的向量来使用该方法.

x86 sse simd avx

9
推荐指数
3
解决办法
1409
查看次数

将memcpy用于具有常量成员的目标结构是否合法?

例如,以下功能是合法的:

struct two_int {
  const int a, b;
}

void copy_two(const two_int *src, two_int *dest) {
  memcpy(dest, src, sizeof(two_int));
}
Run Code Online (Sandbox Code Playgroud)

似乎至少某些类型的常量定义值的修改是不允许的,但我不清楚这是否合格.

如果答案是"是不是允许,在一般的",我也想知道什么地方的特殊情况下dest重新与分配的内存malloc(并因此还没有分配任何值),如:

two_int  s = {.a = 1, .b = 2};
two_int *d = malloc(sizeof(two_int));
copy_two(&s, d);
Run Code Online (Sandbox Code Playgroud)

更新:对于新malloc结构的情况,似乎后面的问题似乎得到了肯定的回答(没关系),但我认为原始的,更普遍的问题仍然存在.

c struct initialization const

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

C 错误定义到字符串的优雅映射

假设我的应用程序中有一堆错误代码,header.h例如:

#define SOMETHING_WENT_WRONG   -1
#define SOLAR_FLARE_DECTECTED  -2
#define ANTS_IN_YOUR_CPU       -3
Run Code Online (Sandbox Code Playgroud)

int我从各种 API 函数返回这些。我想要一种干净的方法来提供一个函数,用户可以调用该函数将这些函数映射到更具描述性的错误消息,同时保持标题简短。

也就是说,虽然我总是可以做类似的事情:

const char *getErrorMessage(int errCode) {
  switch (errCode) {
  case SOMETHING_WENT_WRONG:
    return "Something bad happened, but I don't know more than that";
  case SOLAR_FLARE_DECTECTED:
    return "A solar flare, rather than programmer error, has caused a malfunction";
  case ANTS_IN_YOUR_CPU:
    return "Ants have nested in your CPU, causing all ALU functions to fail";
  default:
    return "I heard you like errors in your error handling. …
Run Code Online (Sandbox Code Playgroud)

c error-handling macros

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

是否所有指针都保证正确地往返*?

在C中,是否可以保证任何指针类型都能void *成功往返?

也就是说,类似以下内容保证可以工作:

typedef struct {
...
} A;

A *p = ...;
void *v = p;
A *p2 = v;
// use p2 here
Run Code Online (Sandbox Code Playgroud)

不管是什么类型的A?

c pointers void-pointers language-lawyer

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