查看: 3422|回复: 6

[其他] 请教关于飞思卡尔对static的编译问题(已解决)

[复制链接]

该用户从未签到

14

主题

40

帖子

0

注册会员

Rank: 2

积分
169
最后登录
1970-1-1
发表于 2010-5-7 10:55:04 | 显示全部楼层 |阅读模式
        我在函数内部用static定义了一个局部静态变量,在这个函数结速前这个静态变量的值为1,但是第二次进入此函数时这个变量值不为1了,按照C标准,这个变量值应该保持为1才对呀,有人知道这是怎么回事吗?我用C没有遇到过这种问题!
 
原因已找到,谢谢各位的回复!
我以前的程序在DZ60上,后来移置到DZ128上,问题就出在移置后没有修改prm文件中的中断向量部份。
我知道答案 目前已有5人回答
回复

使用道具 举报

该用户从未签到

40

主题

256

帖子

0

金牌会员

Rank: 6Rank: 6

积分
10386
最后登录
2023-4-17
发表于 2010-5-7 11:37:37 | 显示全部楼层

RE:请教关于飞思卡尔对static的编译问题

不会吧!!
是你搞错了吧!!
我一直在用这个东东,没有发现有问题啊!!
要不发出来看一看!!!

该用户从未签到

14

主题

40

帖子

0

注册会员

Rank: 2

积分
169
最后登录
1970-1-1
 楼主| 发表于 2010-5-7 11:46:07 | 显示全部楼层

回复:请教关于飞思卡尔对static的编译问题

回复第 2 楼 win2000_li于2010-05-07 03:37:37发表:
不会吧!!
是你搞错了吧!!
我一直在用这个东东,没有发现有问题啊!!
要不发出来看一看!!! 

我也头一次遇到这种问题!经过试验,发现是后面的函数造成了前面函数中的静态变量出了问题,具体原因在哪儿还不知道!

该用户从未签到

40

主题

256

帖子

0

金牌会员

Rank: 6Rank: 6

积分
10386
最后登录
2023-4-17
发表于 2010-5-7 13:22:38 | 显示全部楼层

回复:请教关于飞思卡尔对static的编译问题

哈哈!!!
即使是同名,都不会出问题!!
看来你的问题也许很简单或者很难。。。。。

该用户从未签到

14

主题

40

帖子

0

注册会员

Rank: 2

积分
169
最后登录
1970-1-1
 楼主| 发表于 2010-5-7 14:09:58 | 显示全部楼层

回复:请教关于飞思卡尔对static的编译问题

回复第 4 楼 win2000_li于2010-05-07 05:22:38发表:
哈哈!!!
即使是同名,都不会出问题!!
看来你的问题也许很简单或者很难。。。。。
 

对呀,我也觉得奇怪!
我发现是后面有个函数里的sprintf引起的,不用sprintf就很正常,或者把sprintf中的%d改成%s也正常!但改成%S后我的显示不正常了!

该用户从未签到

14

主题

40

帖子

0

注册会员

Rank: 2

积分
169
最后登录
1970-1-1
 楼主| 发表于 2010-5-7 14:10:00 | 显示全部楼层

回复:请教关于飞思卡尔对static的编译问题

回复第 4 楼 win2000_li于2010-05-07 05:22:38发表:
哈哈!!!
即使是同名,都不会出问题!!
看来你的问题也许很简单或者很难。。。。。
 

对呀,我也觉得奇怪!
我发现是后面有个函数里的sprintf引起的,不用sprintf就很正常,或者把sprintf中的%d改成%s也正常!但改成%S后我的显示不正常了!
  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2010-5-7 14:59:51 | 显示全部楼层

    RE:请教关于飞思卡尔对static的编译问题

    %S?没有这个标准吧。下面是百度出来的结果。你去看看。
    int printf(const char *format,[argument]);
      format 参数输出的格式,定义格式为:%[flags][width][.perc][F|N|h|l]type
      规定数据输出方式,具体如下:
      1.type 含义如下:
      d 有符号10进制整数
      i 有符号10进制整数
      o 无符号8进制整数
      u 无符号10进制整数
      x 无符号的16进制数字,并以小写abcdef表示
      X 无符号的16进制数字,并以大写ABCDEF表示
      F/f 浮点数
      E/e 用科学表示格式的浮点数
      g 使用%f和%e表示中的总的位数表示最短的来表示浮点数 G 同g格式,但表示为指数
      c 单个字符
      s 字符串
      % 显示百分号本身
      p 显示一个指针,near指针表示为:XXXX
      far 指针表示为:XXXX:YYYY
      n 相连参量应是一个指针,其中存放已写字符的个数
      2.flags 规定输出格式,取值和含义如下:
      无 右对齐,左边填充0和空格
      - 左对齐,右边填充空格
      + 在数字前增加符号 + 或 -
      0 将输出的前面补上0,直到占满指定列宽为止(不可以搭配使用-)
      空格 输出值为正时冠以空格,为负时冠以负号
      # 当type=c,s,d,i,u时没有影响
      type=o,x,X时,分别在数值前增加'0',"0x","0X"
      type=e,E,f时,总是使用小数点
      type=g,G时,除了数值为0外总是显示小数点
      3.width 用于控制显示数值的宽度,取值和含义如下
      n(n=1,2,3...) 宽度至少为n位,不够以空格填充
      0n(n=1,2,3...) 宽度至少为n位,不够左边以0填充
      * 格式列表中,下一个参数还是width
      4.prec 用于控制小数点后面的位数,取值和含义如下:
      无 按缺省精度显示
      0 当type=d,i,o,u,x时,没有影响
      type=e,E,f时,不显示小数点
      n(n=1,2,3...) 当type=e,E,f时表示的最大小数位数
      type=其他,表示显示的最大宽度
      .* 格式列表中,下一个参数还是width
      5.F|N|h|l 表示指针是否是远指针或整数是否是长整数
      F 远指针
      n 近指针
      h 短整数或单精度浮点数
      l 长整数或双精度浮点数
    该会员没有填写今日想说内容.
    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-20 23:54 , Processed in 0.099480 second(s), 27 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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