Проверить корректность кода работы с указателями - 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