我读过很多关于这方面的文章,我可以告诉你(我读过的每一篇文章都有这样的假设,所以让我们早点离开这一步):
我已经适当地包括了时间
我已经指定了POSIX常量和-std=gnu99
代码:
#if __STDC_VERSION__ >= 199901L
#define _XOPEN_SOURCE 600
#else
#define _XOPEN_SOURCE 500
#endif /* __STDC_VERSION__ */
#include <linux/soundcard.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#define uint unsigned int
struct KEYDATA
{
struct timestruct duration;
} ;
// output/display function
int main(void)
{
struct KEYDATA keyData[20];
keyData.duration.tv_nsec = 999;
return 0;
}
编译时:
pi@raspberrypi:~/src/midi-timing $ gcc tmp.c -O2 -Wall -pedantic -o tmp -std=gnu99 -lrt
tmp.c:19:22: error: field ‘duration’ has incomplete type
struct timestruct duration;
^
tmp.c: In function ‘main’:
tmp.c:27:11: error: request for member ‘duration’ in something not a structure or union
keyData.duration.tv_nsec = 999;
^
tmp.c:25:19: warning: variable ‘keyData’ set but not used [-Wunused-but-set-variable]
struct KEYDATA keyData[20];
^
pi@raspberrypi:~/src/midi-timing $
我承认我的C编程有点生疏,但肯定有什么我没看到的。如果你看到错误,请告诉我。谢谢。
最佳答案
您已将duration
的类型标识为struct timestruct
,而不是struct timespec
。只要纠正这个拼写错误,我相信你应该没事的。
关于c - 无法在另一个结构中包含timespec,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45538878/