Проверить корректность кода работы с указателями - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Всем добра! Есть тупой вопрос. Например, такая вот функция на C, которая должна что-то сделать с аргументом

uint16_t *data

, а точнее, возять из него сначала с 0-го по 5-й бит, и с 6-го по 11-й.
#include <stdint.h>
 
****
 
typedef char BOOL;
#define TRUE  1
#define FALSE 0
 
***
 
BOOL func(BOOL flag, uint16_t *data)
{
  if (flag)
  {
    uint8_t bit0_5 = *data & 0x003F; /** первые 6 битов (c 0-го по 5-й бит) */
    /** что-то делаю с ними */
 
    uint8_t bit6_11 = (*data & 0x3FC0) >> 6; /** сделующие 6 битов (c 6-го по 11-й бит) */
    /** что-то делаю с ними */
  }
 
  return FALSE;
}
сделал так, но кажется, что так нельзя делать. Возможно, я написал код верно, просто туплю. Если меня поправят, то буду счастлив

Решение задачи: «Проверить корректность кода работы с указателями»

textual
Листинг программы
#include <stdbool.h>
true
false

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5
Похожие ответы