重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

测试函数c语言,测试函数c语言是什么

c语言写位测试函数,在线急等!!!!

//index取值范围0~7

创新互联网站建设公司,提供网站建设、成都做网站,网页设计,建网站,PHP网站建设等专业做网站服务;可快速的进行网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,是专业的做网站团队,希望更多企业前来合作!

//置位时返回值0,否则返回0。

unsigned char bittest(unsigned char* address,unsigned char index)

{

if(index  7)

return 0;

return (*address  (1index));

}

C语言中怎样测试函数执行时间

有4种方法可以达成测算程序运行时间的目的。

它们分别是使用clock, times, gettimeofday, getrusage来实现的。

下面就来逐一介绍,并比较它们的优劣点。

系统测试环境:

VirtualBox (Ubuntu 9.10)

gcc version 4.4.1

libc6 2.10.1-0ubuntu16

Core Duo T2500 2GMHz

例程如下:

只要修改第11行的定义值,就可以使用不同的测量方法了。

#include sys/time.h

#include sys/resource.h

#include unistd.h

#include stdio.h

#include time.h

#define TEST_BY_CLOCK (char)(0x00)

#define TEST_BY_TIMES (char)(0x01)

#define TEST_BY_GETTIMEOFDAY (char)(0x02)

#define TEST_BY_GETRUSAGE (char)(0x03)

#define TEST_METHOD (TEST_BY_GETTIMEOFDAY)

#define COORDINATION_X (int)(1024)

#define COORDINATION_Y (int)(1024)

static int g_Matrix[COORDINATION_X][COORDINATION_Y];

double getTimeval()

{

struct rusage stRusage;

struct timeval stTimeval;

if (TEST_METHOD == TEST_BY_GETTIMEOFDAY)

{

gettimeofday(stTimeval, NULL);

}

else if (TEST_METHOD == TEST_BY_GETRUSAGE)

{

getrusage(RUSAGE_SELF, stRusage);

stTimeval = stRusage.ru_utime;

}

return stTimeval.tv_sec + (double)stTimeval.tv_usec*1E-6;

}

int main()

{

int i, j;

int n = 0;

clock_t clockT1, clockT2;

double doubleT1, doubleT2;

if (TEST_METHOD == TEST_BY_CLOCK)

{

clockT1 = clock();

}

else if (TEST_METHOD == TEST_BY_TIMES)

{

times(clockT1);

}

else if (TEST_METHOD == TEST_BY_GETTIMEOFDAY)

{

doubleT1 = getTimeval();

}

else if (TEST_METHOD == TEST_BY_GETRUSAGE)

{

doubleT1 = getTimeval();

}

for (i = 0; i COORDINATION_X; i++)

{

for (j = 0; j COORDINATION_Y; j++)

{

g_Matrix[i][j] = i * j;

}

}

if (TEST_METHOD == TEST_BY_CLOCK)

{

clockT2 = clock();

printf("Time result tested by clock = %10.30f\n",(double)(clockT2 - clockT1)/CLOCKS_PER_SEC);

}

else if (TEST_METHOD == TEST_BY_TIMES)

{

times(clockT2);

printf("Time result tested by times = %10.30f\n", (double)(clockT2 - clockT1)/sysconf(_SC_CLK_TCK));

}

else if (TEST_METHOD == TEST_BY_GETTIMEOFDAY)

{

doubleT2 = getTimeval();

printf("Time result tested by gettimeofday = %10.30f\n",(double)(doubleT2 - doubleT1));

}

else if (TEST_METHOD == TEST_BY_GETRUSAGE)

{

doubleT2 = getTimeval();

printf("Time result tested by getrusage = %10.70f\n", (double)(doubleT2 - doubleT1));

}

return 0;

}

1. 使用clock的方法:

clock是ANSI C的标准库函数,关于这个函数需要说明几点。

首先,它返回的是CPU耗费在本程序上的时间。也就是说,途中sleep的话,由于CPU资源被释放,那段时间将不被计算在内。

其次,得到的返回值其实就是耗费在本程序上的CPU时间片的数量,也就是Clock Tick的值。该值必须除以CLOCKS_PER_SEC这个宏值,才

能最后得到ss.mmnn格式的运行时间。在POSIX兼容系统中,CLOCKS_PER_SEC的值为1,000,000的,也就是

1MHz。

最后,使用这个函数能达到的精度大约为10ms。

2. 使用times的方法:

times的用法基本和clock类似,同样是取得CPU时间片的数量,所不同的是要除以的时间单位值为sysconf(_SC_CLK_TCK)。

3. 使用gettimeofday的方法:

用gettimeofday直接提取硬件时钟进行运算,得到的结果的精度相比前两种方法提高了很多。

但是也正由于它提取硬件时钟的原因,这个方法只能计算程序开始时间和结束时间的差值。而此时系统中如果在运行其他的后台程序,可能会影响到最终结果的值。如果后台繁忙,系统dispatch过多的话,并不能完全真实反映被测量函数的运行时间。

4. 使用getrusage的方法:

getrusage得到的是程序对系统资源的占用信息。只要指定了RUSAGE_SELF,就可以得到程序本身运行所占用的系统时间。

C语言字符测试函数是什么?

你的if中的条件写的有问题,应改为

if(c='a'c='z'||c='A'c='Z')

这样说明只有你输入的是字母时,a的值才执行++操作。而你的条件c('a'='z''A'='Z'))后半部分('a'='z''A'='Z'))返回值永远都是真,因为a和A永远都比z和Z小呀。前半部分的c是你输入的值,如果不是输入了0对应的ascii码值48,那也永远是真,所以a条件总是成立,a总是++;结果当然就会不对了

C语言中测试字符串长度的函数

C语言中测试字符串长度的函数是strlen()

函数原型:

unsigned int strlen (char *s);

头文件:

#include string.h

参数说明:s为指定的字符串;

功能说明:strlen()用来计算指定的字符串s 的长度,不包括结束字符'\0';

返回值:返回字符串s 的字符数;

注意:strlen() 函数计算的是字符串的实际长度,遇到第一个'\0'结束。

示例:

#includestdio.h

#includestring.h

int main()

{

char str[] = "abcxyz";

printf("strlen(str)=%d\n", strlen(str1));

return 0;

}

//输出结果:strlen(str)=6

C语言 怎样在主函数测试编写的函数?

一直想找出一种简便的方法,于是想到了递归,不知道是不是符合题意,方法不太好,尽是全局变量,看看吧

#includestdio.h

float ave=0,s=0,sum=0;int n,i;

void fun()

{ float t;

printf("请输入数据:");

scanf("%f",t);

sum+=t;

if(-1+i--)

fun();

if(i==0)

{

ave=1.0*sum/n;

}

s+=(t-ave)*(t-ave);

}

void main()

{

printf("要输入几个数:");

scanf("%d",n);

i=n;

fun();

printf("ave=%f,s=%f",ave,s);

}

用C语言编程序 写一个函数,判断输入年份是否为闰年,并编写主函数测试

#includestdio.h

int is(int year)

{

if((year%4==0year%100!=0)||year%400==0)

return 1;

else

return 0;

}

main()

{

int t;

printf("输入年份为");

scanf("%d",t);

t=is(t);

if(t=1)

  printf("%d是闰年",t);

else 

  printf("%d不是闰年",t);

}

输入年份为2016

1是闰年Press any key to continue


文章名称:测试函数c语言,测试函数c语言是什么
网站URL:http://cqcxhl.cn/article/hopcih.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP