2018-08-16 :-|
_ 労
夏季休暇が終わりました。引き続き労に勤しみましょう。
_ C言語
c言語のかんすうでさ、必ず16Byte長の配列を渡す必要があるならさ
— しんやさん (@NAGAYASU_Shinya) 2018年8月16日
void f(uint8_t *p)
じゃなくて
typedef struct {
uint8_t a[16];
} hoge_t;
void f(hoge_t *p)
みたいにしておいてくれると嬉しい。
なるほど。
#include <stdio.h> #include <string.h> typedef struct hoge_tag { uint8_t a[8]; }hoge_t; void hoge(hoge_t* p) { puts(strncpy(p->a, "012345678", sizeof(p->a))); puts(strncpy(p->a, "0123456789", sizeof(p->a))); } int main(int ac, char** av) { hoge_t h = {0}; hoge(&h); return 0; }
% gcc size1.c % ./a.exe 01234567 01234567
[ツッコミを入れる]