2010-07-11 234 views
0

这里是打印的“C++”二进制形式,并在同一时间测量时间C++测试代码

#include <iostream> 
#include <string> 
#include <cstdlib> 
#include <ctime> 
using namespace std; 

int main(){ 
    unsigned int t = clock(); 
    string c = "c++"; 
    int t=0; 
    for (int i=0;i<c.length();i++){ 
     t = (int) c[i]; 
     while (t!=0){ 
      cout << t % 2 <<endl; 
      t >>= 1; 
     } 
    } 
    unsigned int end = clock(); 
    cout << end-t << endl; 
    return 0; 
} 

但这里是错误

1>------ Build started: Project: name_of_c++, Configuration: Debug Win32 ------ 
1> c++_name.cpp 
1>c:\users\david\documents\visual studio 2010\projects\name_of_c++\c++_name.cpp(11): error C2371: 't' : redefinition; different basic types 
1>   c:\users\david\documents\visual studio 2010\projects\name_of_c++\c++_name.cpp(7) : see declaration of 't' 
1>c:\users\david\documents\visual studio 2010\projects\name_of_c++\c++_name.cpp(12): warning C4018: '<' : signed/unsigned mismatch 
1>c:\users\david\documents\visual studio 2010\projects\name_of_c++\c++_name.cpp(16): error C2059: syntax error : '>=' 
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 
+3

不要错误信息说什么? – 2010-07-11 14:33:09

+1

它提出了一个没有意义的问题,然后编辑它,让它在获得答案后不再显示问题。保持原样,否则未来人们将会很困惑。 – gbjbaanb 2010-07-11 14:42:25

+0

那么该怎么办?我可以删除它吗? – 2010-07-11 14:55:18

回答

2

看以下两行:

unsigned int t=clock(); 
int t=0; 

这些都在相同的范围内,并且都定义一个变量t。这在C++中是不允许的!

如果你有麻烦解析错误消息,当你喜欢的东西:

c++_name.cpp(11): error C2371: 't' : redefinition; different basic types 

数括号(11)告诉您发生错误的行。

1
您已声明T作为unsigned int的第一

码在这里:

unsigned int t=clock(); 

,然后再在这里定义为int

int t=0; 

您可以使用第二个变量名来摆脱此错误。

+0

是的,我已经改变了代码,它的工作原理是输入错误,我没有看到 – 2010-07-11 14:36:41

2

你知道,编译器会输出错误的行号。

这里有一个问题:

unsigned int t=clock(); 


string c="c++"; 
int t=0; 

首先声明T作为unsigned int类型,然后你把它声明为int类型。