天嵌 ARM开发社区

 找回密码
 注册
查看: 1528|回复: 0

sscanf 和强制转换的区别

[复制链接]
wang12zhedi 发表于 2012-9-15 19:26:29 | 显示全部楼层 |阅读模式
今天写一个测试程序,代码如下(写的比较乱,包涵)
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>


int main(int argc,char **argv)
{
   int  fd;
   int ret,cmd;
    fd=open("/dev/butt_led_dev",0);
       
    if(fd < 0)
      printf("open fail \n");
        sscanf(argv[1],"%d",&cmd);
      sscanf(argv[2], "%d", &ret);

   if(cmd==0)
    {
    ioctl(fd,0,ret-1);
    printf("ret=%d\n",(ret-1));
           }
   else
              {
    ioctl(fd,1,ret-1);
    printf("ret=%d\n",(ret-1));
           }
   close(fd);
   return 0;
}
  我前几天看到sscanf的用法,
sscanf(argv[2], "%d", &ret);
是把argv[2]转换成整形格式并存入ret。这和强制转换有什么不同,我用ret=(int)ret却到不同的结果,请指点
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-18 06:41 , Processed in 1.046875 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表