1001 * имеющий *
struct pins
{
volatile unsigned char state : 1;
unsigned char LED0 : 1;
unsigned char LED1 : 1;
unsigned char LED2 : 1;
unsigned char LED3 : 1;
unsigned char LED4 : 1;
unsigned char LED5 : 1;
}pins;
чтобы установить все на 0: memset(&pins, 0, sizeof(pins));
чтобы установить все на 1: memset(&pins, -1, sizeof(pins));
и, вероятно, memset будет оптимизирован для установки только одного байта
Чтобы помочь Джону Доу:
#include <stdio.h>
#include <string.h>
struct pins
{
volatile unsigned char state : 1;
unsigned char LED0 : 1;
unsigned char LED1 : 1;
unsigned char LED2 : 1;
unsigned char LED3 : 1;
unsigned char LED4 : 1;
unsigned char LED5 : 1;
} pins;
void pr()
{
printf("%u %u %u %u %u %u %u\n",
pins.state, pins.LED0, pins.LED1, pins.LED2, pins.LED3, pins.LED4, pins.LED5);
}
int main()
{
/* pins is already to 0 because static */
memset(&pins, -1, sizeof(pins));
pr();
memset(&pins, 0, sizeof(pins));
pr();
memset(&pins, -1, sizeof(pins));
pr();
return 0;
}
Исполнение:
1 1 1 1 1 1 1
0 0 0 0 0 0 0
1 1 1 1 1 1 1