0

我写了下面的代码:

#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))时我是否有一些错误

4

0 回答 0