#include<stdio.h>
#include<string.h>
void printlength(char *s, char *t) {
unsigned int c=0;
int len = ((strlen(s) - strlen(t)) > c) ? strlen(s) : strlen(t);
printf("%d\n", len);
}
void main() {
char *x = "abc";
char *y = "defgh";
printlength(x,y);
}
私はそれをコンパイルすると、それは私がどのように変換がここで行われている理解していない、を与えるが、このCコードではどのように変換が行われますか? > C)</strong> - <strong>(strlenを(t)とstrlenを(S)):
これは非常に貧弱なコードです。(strlen(s) - strlen(t)) 'は、符号なし演算であるため_always_> = 0です。 – chux
したがって、オプティマイザは、 'printf("%d \ n "、(int)strlen(s));' –
@MMに変換できます。 )strlen(t)); – chux