小编Ake*_*eel的帖子

在C中反转结构中的所有位

反转具有不同大小的不同成员的结构的所有位的有效方法是什么?

示例结构:

typedef struct {
    uint16_t mem1;
    uint8_t mem2;
    uint32_t mem3;
    uint8_t mem4[4];
} sample_struct;
Run Code Online (Sandbox Code Playgroud)

c

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

如何从错误处理和调试中减少C中的代码膨胀

考虑这个功能:

int get_result(int *result) {
     int err = 0;
     int number = 0;         

     if (result == NULL) {
         printf("error: null input\n");
         return -1;
     }

     err = get_number(&number);

     if (err != 0) {
         printf("error calling get_number: err = %d\n", err);
         return err;
     }

     err = calculate_result(number, result);

     if (err != 0) {
        printf("error calling get_result: err = %d\n", err);
        return err;
     }

     return err;
}
Run Code Online (Sandbox Code Playgroud)

这个函数的实际工作只需要3行(声明数字变量,调用get_number(),然后调用calculate_result()).但是,错误检查/处理代码会将此功能扩展为17行(给定或接受,具体取决于您对行的计算方式).

在更大规模,多次调用和多次错误检查时,我们完全膨胀该函数并使其难以理解且难以理解.

有什么方法可以解决C代码膨胀问题并保持函数核心操作的可读性(不牺牲基本的错误处理代码)?

c readability code-readability

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

符号表本地静态变量名称

为什么符号表中的局部静态变量的名称中添加了一个数字?

int main(void) {
    static stat_var = 20;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

8:0000000000000008 4 OBJECT LOCAL DEFAULT 2 stat_var .1604

c symbols compilation

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

标签 统计

c ×3

code-readability ×1

compilation ×1

readability ×1

symbols ×1