我写了下面的代码:
#include<stdio.h>
#include<pthread.h>
int pthread_create(
pthread_t*,
const pthread_attr_t *,
void* (*)(void *),
void*) __attribute__ ((weak)) ;
int main(){
if (pthread_create) {
printf("multi-thread");
} else {
printf("single-thread");
}
}
当用不同的方式编译代码并运行它时,它会显示相同的结果。代码如下:
zoushengfu@zoushengfudeMacBook-Pro:~/Documents/code/c++$ gcc -o pt
pthread.cpp
zoushengfu@zoushengfudeMacBook-Pro:~/Documents/code/c++$ ./pt
multi-thread
zoushengfu@zoushengfudeMacBook-Pro:~/Documents/code/c++$ gcc -o pt pthread.cpp -lpthread
zoushengfu@zoushengfudeMacBook-Pro:~/Documents/code/c++$ ./pt
multi-thread
我想知道为什么我在编译时使用库pthread时结果相同。使用__attribute__((weak))时我是否有一些错误