小编Hai*_*ile的帖子

GCC如何优化循环内增加的未使用变量?

我写了这个简单的C程序:

int main() {
    int i;
    int count = 0;
    for(i = 0; i < 2000000000; i++){
        count = count + 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

我想看看gcc编译器如何优化这个循环(显然添加1 2000000000次应该是"一次添加2000000000 ").所以:

GCC test.c的,然后timea.out给出了:

real 0m7.717s  
user 0m7.710s  
sys 0m0.000s  
Run Code Online (Sandbox Code Playgroud)

$ gcc -O2 test.c 然后time ona.out`给出:

real 0m0.003s  
user 0m0.000s  
sys 0m0.000s  
Run Code Online (Sandbox Code Playgroud)

然后我用两个人拆开了gcc -S.第一个似乎很清楚:

    .file "test.c"  
    .text  
.globl main
    .type   main, @function  
main:
.LFB0:
    .cfi_startproc
    pushq   %rbp
    .cfi_def_cfa_offset 16
    movq    %rsp, %rbp
    .cfi_offset 6, …
Run Code Online (Sandbox Code Playgroud)

c gcc disassembly compiler-optimization

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

输入文本在iOS模拟器上不显示键盘

我正在构建一个应用程序,我需要使用输入文本.

当您点击此输入文本时,问题就出现了,键盘没有出现.

我不知道为什么,我不知道我做错了什么.它应该是直截了当的.

这是我的一些代码:

<View style={ styles.storyContentContainer }>
    <TextInput ref='username' style={{width: 300, height: 20, borderWidth: 1,}}/>
</View>
Run Code Online (Sandbox Code Playgroud)

当输入文本得到关注时,一个视频向你们展示:

在此输入图像描述

我希望你们能帮我解决这个问题.

keyboard ios-simulator react-native

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

如何复制做什么去?

我想要一组代码执行,直到用户明确要退出该函数.例如:当用户运行程序时,他将看到2个选项:

  1. 再次运行
  2. 出口

这将通过开关盒结构实现.这里如果用户按下1,将执行与1相关联的功能组,如果用户按下2,程序将退出.我应该如何在golang中实现这个场景?在java中,我相信这可以使用do while结构完成但是不支持do while循环.以下是我尝试的代码,但这是一个无限循环:

func sample() {
    var i = 1
    for i > 0 {
        fmt.Println("Press 1 to run")
        fmt.Println("Press 2 to exit")
        var input string
        inpt, _ := fmt.Scanln(&input)
        switch inpt {
        case 1:
            fmt.Println("hi")
        case 2:
            os.Exit(2)
        default:
            fmt.Println("def")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

该程序与输入无关,仅打印"hi".有人可以纠正我在这里做错了什么吗?

谢谢.

go

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

如何指出容器模板参数的类型?

假设我们有这个 template

template<typename Container, typename T> 
bool    contains (const Container & theContainer, const T & theReference) {
     ...
}
Run Code Online (Sandbox Code Playgroud)

如何说明,容器中的元素显然应该是类型T

这一切都可以缩写(也许在C++ 11中)?

c++ templates c++11

22
推荐指数
5
解决办法
2673
查看次数

Scala谓词

我是Scala的新手,我正在试图弄清楚谓词是什么以及使用它们的正确方法.我在网上找到的信息对我来说不是很清楚,或者它假设先前有关谓词的知识.有人可以解释它们是什么,也许可以展示一些如何在Scala中使用它们的例子吗?

scala

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

“抛出新异常”和“新异常”之间的区别?

我有兴趣了解使用throw new Exception()和 的最佳实践new Exception()。在使用的情况下new Exception(),我已经看到代码移动到下一个语句而不是抛出异常。

但是我被告知我们应该使用new Exception()to throw RuntimeException

任何人都可以对此有所了解吗?

java exception throw

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

Common Lisp:编译与评估

在使用sbcl的Emacs + Slime上,一旦我在文件中定义了一个函数(或更多),我有两个选择:

  • 评估:例如使用CMx eval-defun
  • 编译:例如使用Cc Mk编译文件

第二个也生成.fasl文件.

两者有什么不同?

编译定义/文件时,幕后发生了什么?

每个人的优点和缺点是什么?

lisp functional-programming sbcl common-lisp

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

最常见的回文序列

是否有任何有效的算法可以计算两个给定字符串的最长公共回文子序列的长度?

例如:

字符串1. afbcdfca

字符串2. bcadfcgyfka

LCPS为5,LCPS串为afcfa.

string algorithm lcs

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

使用代码块逐步执行我的代码

我记得F8Turbo C中有快捷键,它显示了代码的逐步执行,它还让你看到变量的值.

Codeblocks有类似的功能吗?

debugging codeblocks

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

C - 返回未知大小的数组

假设我想写(在C99中)以下函数:

NAME: primes
INPUT: an integer n > 0
OUTPUT: int array filled with the prime numbers in range [2, n]
Run Code Online (Sandbox Code Playgroud)

如何从我的函数中返回这样的数组?那可能吗?


请注意,我希望调用者分配一个n * sizeof(int)我将用0(复合)和1(素数)填充的数组.

我不能只返回一个指向数组的指针,因为调用者无法知道数组有多长:

int * primes(int n)
{
    int * arr = malloc(n * sizeof(int));
    // do stuff
    return arr;
} 

int main(void)
{
    int * arr = primes(100);
    printf("%lu \n", sizeof arr); // prints 8
}
Run Code Online (Sandbox Code Playgroud)

我无法改变这样的签名:

int (*primes(int n))[LENGTH]  
Run Code Online (Sandbox Code Playgroud)

因为LENGTH在编译时是未知的.


我在某处读到类似"用数组返回一个结构是一个可怕的想法",而且......好吧......这是我的最后一个想法.

在这种情况下,最佳做法是什么?

c arrays c99

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