求問C++,我自定義了一個函式,我想讓這個函式的回傳值是一個結構體中的所有元素。可以這樣做嗎
代碼如下
struct start
{
int long long n1;
int long long n2;
uuid_t tid;
char sk;
};
start stobj;
start initial()
{ // print p1 q1 N1 ;generate random primes by sever;and send N to tag
uuid_t TID; //generate the TID
uuid_generate( TID );
for(i=0;i<16;i++)
{
printf("%02X-",TID[i]);
}
printf("\n");
unsigned char digest[SHA_DIGEST_LENGTH];
SHA1(TID, strlen((const char*)TID), digest);
char SK[SHA_DIGEST_LENGTH*2+1];
for(int i = 0; i < SHA_DIGEST_LENGTH; i++)
sprintf(&SK[i*2], "%02x", (unsigned int)digest[i]);
printf("SHA1 digest: %s\n", SK);
srand((unsigned)time(NULL));
while(1){
p1 = MIN + (rand() % (MAX-MIN));
if(judgeprime(p1)){
cout << "p1 = " << p1 << endl;
break;
}
else
continue;
}
while(1){
q1 = MIN + (rand() % (MAX-MIN));
if(judgeprime(q1)){
cout << "q1 = " << q1 << endl;
break;
}
else
continue;
}
N1 = p1 * q1;
cout << "N1 = " << N1 << endl;
while(1){
p2 = MIN + (rand() % (MAX-MIN));
if(judgeprime(p2)){
cout << "p2 = " << p2 << endl;
break;
}
else
continue;
}
while(1){
q2 = MIN + (rand() % (MAX-MIN));
if(judgeprime(q2)){
cout << "q2 = " << q2 << endl;
break;
}
else
continue;
}
N2 = p2 * q2;
cout << "N2 = " << N2 << endl;
stobj.n1 = N1;
stobj.n2 = N2;
memcpy(stobj.tid, TID, strlen(TID)+1);
stobj.sk = SK;
return start;
}
uj5u.com熱心網友回復:
代碼如上 最后我想回傳 結構體start的所有成員uj5u.com熱心網友回復:
start只是個結構體名就像你定義了start stobj;
你可以給stobj賦值,也可以回傳stobj,因為他是一個變數,而start只是個結構體型別 你不能回傳start啊
比如int a;
你可以給a賦值 可以回傳a 但是你不能回傳int 啊 簡單舉個例子
int func1(){
return a;//OK
return int;//NG
}
uj5u.com熱心網友回復:
struct start
{
int long long n1;
int long long n2;
uuid_t tid;
char sk;
};
struct start initial() { // print p1 q1 N1 ;generate random primes by sever;and send N to tag
struct start stobj;
uuid_t TID; //generate the TID
uuid_generate( TID );
for(i=0;i<16;i++) {
printf("%02X-",TID[i]);
}
printf("\n");
unsigned char digest[SHA_DIGEST_LENGTH];
SHA1(TID, strlen((const char*)TID), digest);
char SK[SHA_DIGEST_LENGTH*2+1];
for(int i = 0; i < SHA_DIGEST_LENGTH; i++)
sprintf(&SK[i*2], "%02x", (unsigned int)digest[i]);
printf("SHA1 digest: %s\n", SK);
srand((unsigned)time(NULL));
while(1) {
p1 = MIN + (rand() % (MAX-MIN));
if(judgeprime(p1)) {
cout << "p1 = " << p1 << endl;
break;
} else
continue;
}
while(1) {
q1 = MIN + (rand() % (MAX-MIN));
if(judgeprime(q1)) {
cout << "q1 = " << q1 << endl;
break;
} else
continue;
}
N1 = p1 * q1;
cout << "N1 = " << N1 << endl;
while(1) {
p2 = MIN + (rand() % (MAX-MIN));
if(judgeprime(p2)) {
cout << "p2 = " << p2 << endl;
break;
} else
continue;
}
while(1) {
q2 = MIN + (rand() % (MAX-MIN));
if(judgeprime(q2)) {
cout << "q2 = " << q2 << endl;
break;
} else
continue;
}
N2 = p2 * q2;
cout << "N2 = " << N2 << endl;
stobj.n1 = N1;
stobj.n2 = N2;
memcpy(stobj.tid, TID, strlen(TID)+1);
stobj.sk = SK;
return stobj;
}
uj5u.com熱心網友回復:
回傳start結構定義的物件轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/195647.html
標籤:C++ 語言
上一篇:計算機小白想要通過OJ作業
下一篇:有沒有辦法檢測一個類是否是基類
