Size: a a a

2021 November 23

VO

Vyacheslav Olkhovche... in Embedded Group
Я нихуя не понимаю что и зачем ты делаешь
источник

VO

Vyacheslav Olkhovche... in Embedded Group
Потому что код на ми в общем случае не будет плюсами транслироваться. Независимо от extern. Т.е. транслировать тв будешь его сишным компайлером. Ему екстерн не нужен. Независимо от того сто использоваться он будет в плюсах
источник

SK

Stas Koynov in Embedded Group
что значит транслировать сишным? зачем я буду стартап куда то транслировать или собирать gcc вместо g++.
источник

SK

Stas Koynov in Embedded Group
источник

SK

Stas Koynov in Embedded Group
прекрасно работает на Си. выбираем ++ и не работает :( снимаем коменты. и начинает работать везде.
источник

VO

Vyacheslav Olkhovche... in Embedded Group
#include <stdlib.h>

#ifdef __cplusplus
extern "C" {
#endif

char * Default_Handler(void)
{
    char *x = malloc(100);
    return x;
}

#ifdef __cplusplus
}
#endif
источник

VO

Vyacheslav Olkhovche... in Embedded Group
транслируем gcc
источник

VO

Vyacheslav Olkhovche... in Embedded Group
/usr/local/bin/arm-none-eabi-gcc -Wall -Wextra -c tp.c
источник

VO

Vyacheslav Olkhovche... in Embedded Group
ни одного варнинга
источник

VO

Vyacheslav Olkhovche... in Embedded Group
транслируем плюсами
источник

VO

Vyacheslav Olkhovche... in Embedded Group
/usr/local/bin/arm-none-eabi-g++ -Wall -Wextra -c tp.c
источник

VO

Vyacheslav Olkhovche... in Embedded Group
In file included from /usr/include/c++/v1/stdlib.h:91,
                from tp.c:1:
/usr/include/c++/v1/__config:1132:6: error: #error "No thread API"
#    error "No thread API"
     ^~~~~
tp.c: In function 'char* Default_Handler()':
tp.c:9:22: error: invalid conversion from 'void*' to 'char*' [-fpermissive]
     char *x = malloc(100);
               ~~~~^~~
источник

SK

Stas Koynov in Embedded Group
а при чем тут пример с маллоком? я вам где-то утверждал что extern "C" { вам будет давать это? мы разговор вели про стартап и про его компиляцию в Си в С++. вы еще тут питон напишите, и мол он же внутри на Си написан.
источник

A

Alexander in Embedded Group
Шах и мат )
источник

VO

Vyacheslav Olkhovche... in Embedded Group
да мне главное было показать что в плюсах и сях конвертация из void * разная
источник

VO

Vyacheslav Olkhovche... in Embedded Group
ну давай без маллока
источник

SK

Stas Koynov in Embedded Group
вы куда-то не туда ушли. шла речь про конкретный стартап. и вот если обмазать его extern "C" { то его можно будет заюзать как в Си так и в ++. все. разговоров про другое не было!
источник

VO

Vyacheslav Olkhovche... in Embedded Group
#ifdef __cplusplus
extern "C" {
#endif

void * foo(void)
{
 return (void *)(0x1234);
}

char * Default_Handler(void)
{
    char *x = foo();
    return x;
}

#ifdef __cplusplus
}
#endif
источник

VO

Vyacheslav Olkhovche... in Embedded Group
tp.c: In function 'char* Default_Handler()':
tp.c:12:19: error: invalid conversion from 'void*' to 'char*' [-fpermissive]
     char *x = foo();
               ~~~^~
источник

VO

Vyacheslav Olkhovche... in Embedded Group
я не понимаю что значит "стартап можно удет заюзать как в Си так и в ++" и зачем для этого его обмазывать extern "C" {
источник