gpt4 book ai didi

c - 优化 C 代码

转载 作者:行者123 更新时间:2023-11-30 15:58:36 25 4
gpt4 key购买 nike

这是我的 C 代码..

void Read(int t,char* string1)
{
int j,i,p,row,count=0;
for(i=0;i<t;++i,string1=strchr(string1,')')+2)
{
sscanf(string1,"(%d,%d)",&p,&row);
CallFunction(p,row);
}
}

这是我如何调用这个函数:

Read(2,"(3,5),(7,8)")

这是处理此类输入参数的好方法吗?很费时间吗?

还有其他读取相同输入参数的好方法(优化方法)吗?

最佳答案

您可以使用 sscanf() 的 %n 格式说明符,它允许您省略 strchr() 函数。速度的提高可能是微乎其微的。

顺便说一句:不要调用函数“Read”,即使您可以假设编译器和链接器区分大小写。

#include <stdio.h>

#define CallFunction(a,b) fprintf(stderr, "p=%d row=%d\n", a, b)

void do_read(int cnt,char *input)
{
int i,err,p,row,res;

for(i=0; i<cnt ; i++,input += res )
{
err = sscanf(input,"(%d,%d)%n",&p,&row, &res);
if (err < 2) {
fprintf(stderr, "%s:%d: input='%s', err=%d\n"
, __FILE__ , __LINE__, input, err );
break;
}
CallFunction(p,row);
if (input[res] == ',') res++;
}
}

int main(void)
{
do_read(2,"(3,5),(7,8)"); /* this should succeed */
do_read(2,"(3,5)#(7,8)"); /* this must fail ... */

return 0;
}

关于c - 优化 C 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9646363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com