【发布时间】:2017-06-09 17:40:26
【问题描述】:
每次我在生活中使用pthread_create 时,都需要四个参数。出于某种原因,在使用 android 和 JNI 时尝试在 C 中创建线程时,我看到了这个:
发生了什么
int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
void *(*start_routine) (void *), void *arg);
为什么我没有看到它?
编辑:
更奇怪的是,我对面点击了我的#include <pthread.h>,然后点击了Go to->Declaration,然后向下滚动直到看到pthread_create,它显示了正确的函数定义。
编辑 2:
更奇怪的是,我现在意识到它编译得很好。这与编辑有关。如果我输入四个参数,它会在编辑器中显示“预期 1 个参数”,但它编译时没有任何问题。但是,如果我只提供编辑器想要的 1 个参数,则无法编译错误日志中的“预期 4 个参数”。
我不知道它发生了什么。
【问题讨论】:
-
C 函数有原型和定义,而不是签名。
-
@AndrewHenle 谢谢,已更新。
-
你是如何编译你的代码的?看起来
pthread_create()的错误声明存在于某处,可能在头文件中。 -
@AndrewHenle 检查我上次的编辑。我觉得编辑器只是出于某种原因很奇怪。我还完成了一个完整的项目搜索,包括外部标头,但没有针对
pthread_create的其他定义的结果 -
这是哪个编辑器?
标签: android c java-native-interface