PICC库函数

QQ172082520

error (char * s, ...) {

va_list ap; va_start(ap, s); printf(\vprintf(s, ap); putchar(’\\n’); va_end(ap); } void

main (void) { int i; i = 3;

error(\}

参见sprintf()函数。 4. 返回值 printf()将返回的字符值写到标准输出口。注意返回值为字符型,而不是整形。

注意:printf函数的部分特征只对中级和高级系列单片机有效。详见描述部分。输出浮点数要求浮点数不大于最大长整型变量。为了使用长整型变量或浮点数格式必须将适当的函数库包含进来。参见有关PICC –L的描述以及有关HPDPIC长整型格式在printf的菜单选项。

3.39 RAND函数

1. 提 要

#include int rand (void) 2. 描 述 rand()函数用来产生一个随机数数据。它返回一个0~32767的整数,并且这个整数在每次被调用后, 以随机数据形式出现。这一运算规则将产生一个从同一起点开始的确定顺序。起点通过调用srand()函数获得。下面的例程说明了每次通过调用time()函数获得不同的起点。 3. 例 程

#include #include #include void

main (void) {

time_t toc;

65

QQ172082520

int i;

time(&toc); srand((int)toc);

for(i = 0 ; i != 10 ; i++) printf(\putchar(’\\n’); }

参见srand()函数。

注意:例程中需要用户自己提供time()函数,因为它不能由汇编器产生。更详细的情况参见time()函数。

3.40 SIN函数

1. 提 要

#include double sin (double f) 2. 描 述 这个函数返回参数的正弦值。 3. 例 程n

#include #include

#define C 3.141592/180.0 void

main (void) {

double i;

for(i = 0 ; i <= 180.0 ; i += 10)

printf(\}

4. 参 阅 cos(), tan(), asin(), acos(), atan(), atan2() 5. 返回值 返回值为参数f的正弦值。

3.41 SPRINTF函数

1. 提 要

#include

/* 中级和低级系列单片机 */

unsigned char sprintf (char *buf, const char * fmt, ...) /* 高级系列单片机 */

unsigned char sprintf (far char *buf, const char * fmt, ...) 2. 描 述

66

QQ172082520

sprintf()函数和printf()函数操作基本相同; 只是输出在不同的输出终端,所有的字符被放到buf缓冲器。字符串带有空格结束符,buf缓冲器中的数据被返回。 参见printf()函数。 3. 返回值 sprintf()函数的返回值为被放入缓冲器中的数据。注意,返回值为字符型而非整型。

注意:对高级单片机而言,缓冲器是通过长指针访问的。

3.42 SQRT函数

1. 提 要

#include double sqrt (double f) 2. 描 述 sqrt()函数利用牛顿法得到参数的近似平方根。 3. 例 程

#include #include void

main (void) {

double i;

for(i = 0 ; i <= 20.0 ; i += 1.0)

printf(\}

参见exp()函数。 4. 返回值 返回值为参数的平方根。

注意:如果参数为负则出现错误。

3.43 SRAND函数

1. 提 要

#include

void srand (unsigned int seed) 2. 描 述

srand()函数是在调用rand()函数时被用来初始化随机数据发生器的。它为rand()函数产生不同起点虚拟数据顺序提供一个机制。在z80上,随机数据最好从新的寄存器获得。否则,控制台的响应时间或系统时间将充当这一数据。 3. 例 程

#include #include #include void

67

QQ172082520

main (void) {

time_t toc; int i;

time(&toc); srand((int)toc);

for(i = 0 ; i != 10 ; i++) printf(\putchar(’\\n’); }

参见rand()函数。

3.44 STRCAT函数

1. 提 要

#include

/* 中级和低级系列单片机 */

char * strcat (char * s1, const char * s2) /* 高级系列单片机 */

far char * strcat (far char * s1, const char * s2) 2. 描 述

这个函数将字符串s2连接到字符串s1的后面。新的字符串以空格作为结束符。指针型参数s1指向的字符数组必须保证大于结果字符串。 3. 例 程

#include #include void

main (void) {

char buffer[256]; char * s1, * s2;

strcpy(buffer, \s1 = buffer;

s2 = \strcat(s1, s2);

printf(\printf(\}

4. 参 阅 strcpy(), strcmp(), strncat(), strlen() 5. 返回值

68

QQ172082520

即为字符串s1。

3.45 STRCHR, STRICHR函数

1. 提 要

#include

/* 中级和低级系列单片机 */

const char * strchr (const char * s, int c) const char * strichr (const char * s, int c) /* 高级系列单片机 */

char * strchr (const char * s, int c) char * strichr (const char * s, int c) 2. 描 述

strchr()函数查找字符串s中是否出现字符变量c。如果找到了, 则字符指针被返回;否则返回0。Strichr()函数与strchr()函数作用相同。 3. 例 程

#include #include void

main (void) {

static char temp[] = \char c = ’s’;

if(strchr(temp, c))

printf(\else

printf(\}

4. 参 阅

strrchr(), strlen(), strcmp() 5. 返回值 如果找到,则返回第一个字符的指针;否则返回0。

注意:函数对字符使用整型参数,只有低8位有效。

3.46 STRCMP, STRICMP函数

1. 提 要

#include

int strcmp (const char * s1, const char * s2) int stricmp (const char * s1, const char * s2) 2. 描 述

strcmp()函数用来比较2个字符串的大小。字符串带有空格结束符,根据字符串s1

69

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4