小编A.M*_*M.M的帖子

以有效的方式乘以7

我最近遇到了以下面试问题:

如何以高效优化的方式将数字乘以7?

我知道我可以乘以8(或左移三位)然后减去原始值:

num = (num << 3) - num;
Run Code Online (Sandbox Code Playgroud)

但还有其他解决方案.

c

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

具有恒定大小的数组(全局与堆栈)

当我尝试这个代码时它工作:

const int i = 5;
int main() {
    int arry[i];
}
Run Code Online (Sandbox Code Playgroud)

即使这不起作用:

const int i = 5;
int arry[i];
int main() {

}
Run Code Online (Sandbox Code Playgroud)

我已经阅读了有关常量大小的数组的所有帖子,但我无法理解为什么arry在main中声明它有效.

c gcc

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

标签作为值与switch语句

我最近读到有关标签的价值,

int main(){
    int value  = 2;
    const void *labels[] = {&&val_0, &&val_1, &&val_2};
    goto *labels[value];
    val_0:
        printf("The value is 0\n");
        goto end;
    val_1:
        printf("The value is 1\n");
        goto end;
    val_2:
        printf("The value is 2\n");
        goto end;
    end:
    return(0);
}
Run Code Online (Sandbox Code Playgroud)

我要问的是,使用此方法而不是使用switch语句或指针数组是否真的有任何性能提升?

c gcc

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

标签 统计

c ×3

gcc ×2