今天看 深入理解操作系统一书,感叹起c的坑之多,因为长期用java没有这些坑,但是长期被jvm保护,不知道底层,心中总是不安,还是下决心学习底层。
strlen返回值size_t,是unsigned int,在用它进行运算时要小心符号隐匿转换问题。
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
int strlonger(char *s, char *t){
int a = strlen(s);
int b = strlen(t);
printf("%d %d \n",a,b);
int i = a - b;
printf("%d \n",i);
return i > 0;
}
float sum_elements(float a[], unsigned length){
int i;
float result = 0;
for(i=0;i<=length-1;i++)
result += a[i];
return result;
}
int main(int argc, char* argv[])
{
//float a[3] = {1,2,3};
//sum_elements(a,0);
char a[5] = {'1','2','3'};
char b[3] = {'a'};
int i = strlonger(b,a);
printf("%d\n",i);
return 0;
}