In my applications I have several threads that access and modify the same char array.
volatile unsigned char *volatile key[6] = { 0xD4 ,0x32 ,0xF8 ,0x0A ,0x10 ,0xE5 };
Will volatile unsigned char *volatile guarantee:
- Visibility (All other threads will see changes on the chars immediately) 
- Atomicity (Any change will be executed by one single thread without interruption) 
 
    