C ++代码优雅

时间:2012-03-06 23:47:52

标签: c++

拥有这样的代码是否合适:

#include <FILEHERE>
using namespace std;

char input;

int main() {
    cin >> input;
    cout << input;

    return 0;
}

我知道这段代码会起作用,但是被认为是正确的,是否有更好的操作?

我使用与此类似的代码(但是更复杂)的原因是因为我有一个线程和main函数都在某个时候使用这个字符串,并且我能想到为这两个字符串声明它的唯一方法线程和main函数是在线程和main函数之外声明它。有什么更好的方法呢?

编辑:我不是在问我使用namespace std;,因为我几乎在我写的每个程序中使用它。

2 个答案:

答案 0 :(得分:1)

您可以将指针传递给主线程的本地变量:

int main() { 
  int input;
  set_thread_input(&input);
  /* ... */
  return 0;
}

void thread_func(void *arg){
   int *input = (int*)arg;
   /* ... */
}

答案 1 :(得分:1)

如果您在全球范围内询问变量,是的,这当然很常见。我认为你会发现更多的人会在原则上反对using namespace std声明,而不是在全球范围内声明的对象。