失敗,但sccessful這是爲什麼沒有通過GCC編譯器,但全成由VC6.0函數返回結構編譯通過GCC由VC6.0
gcc版本4.1.2 20070115(的SUSE Linux)
linux:~# cc t.c
t.c: In function ‘main’:
t.c:24: error: invalid use of non-lvalue array - printf((confFQDNtolower(&tFQDN)).strName);
代碼:
#include <stdio.h>
#include <ctype.h>
typedef struct {
char strName[128];
unsigned short wLen;
}T_FQDN;
T_FQDN confFQDNtolower(T_FQDN *ptFQDN)
{
static T_FQDN tFQDN = {0};
int i;
tFQDN.wLen = ptFQDN->wLen;
for (i = 0; i < ptFQDN->wLen; i++)
{
tFQDN.strName[i] = tolower(ptFQDN->strName[i]);
}
return tFQDN;
}
int main()
{
T_FQDN tFQDN = {"a.B.c", 5};
printf((confFQDNtolower(&tFQDN)).strName);
return 0;
}
這不是C++。它是C. – Davidbrcz
適用於GCC 4.8.2。你使用什麼版本? – Drop
爲什麼你會設計一個這樣的函數來接受一個非''const'指針並返回一個值?您是否積極*嘗試*設計可能最不直觀的界面,在這裏?好的工作,在這種情況下。 :) – unwind