小编mac*_*ko'的帖子

C中for循环中的奇怪指针算法

我用IAR EBW编程msp430.

我的表达式如下:

adres = (uint_fast16_t *) 0x8602 + (0x0200*i);
Run Code Online (Sandbox Code Playgroud)

在for循环中,以便我随着每个循环增加.出于某种原因,它会跳过两个地址中的每一个并给我:

0x8602
0x8A02
0x8E02
Run Code Online (Sandbox Code Playgroud)

等等.因此跳过0x8802,也就是0x8C02等等.

为什么会这样?

////下面是完整代码,请注意我被放置在三个循环中,每个人都给出相同的结果.////还要注意在调试时检查时显示为:1,2,3 ......等

#include "io430.h"
#include <stdint.h>

int main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;

  // Inicjalizuj piny GPIO
  P3OUT &= ~(BIT4+BIT5);        // zeruj warto?ci by zapobiec krótkotrwa?ym impulsom
  P3DIR |= BIT4; // ustaw pin3.4 UCA0TXD oraz piny 3.0 CS, 3.1 SIMO, 3.3 CLK jako wyj?cie
  P3DIR &= ~(BIT5);               // ustaw pin3.5 UCA0RXD oraz …
Run Code Online (Sandbox Code Playgroud)

c pointers pointer-arithmetic msp430 iar

1
推荐指数
1
解决办法
195
查看次数

标签 统计

c ×1

iar ×1

msp430 ×1

pointer-arithmetic ×1

pointers ×1