【发布时间】:2016-11-24 21:17:02
【问题描述】:
我对我的代码有一个简短的问题:
int main(void)
{
int i,j,key[5][5],ikey[5][5],row,col,plen,suc;
int devide,count,h,k,no,p1[100],e1[100],d1[100];
char p[100],e[100],d[100],clen;
printf("Enter your plaintext::::::::");
gets(p);
plen = strlen(p); // this line gets error
警告线是:
plen = strlen(p);
隐式转换会丢失整数精度 unsigned long 到 int。
【问题讨论】:
-
问题是什么?是不是
strlen返回类型size_t? -
我正在做一些练习,并收到一条警告,指出:隐式转换会丢失整数精度 unsigned long 到 int。
plen = strlen(p);这一行。 -
strlen返回一个size_t类型的值,它是您机器上unsigned long int的 typedef。 -
你这么说,但你在问什么?您是在问为什么编译器说您不能将“夸脱放入品脱罐”?
-
for exp 这行没有错误
clen=strlen(e); devide=(clen+1)/suc;因为 clen 是 char 但 plen 是整数。我不明白为什么我得到了错误。
标签: c