Size: a a a

2021 August 31

LZ

Leonid Zaliubovskii in Embedded Group
Да в целом нет, пока не встретится вариант, что тебе нужно из функции дёрнуть функцию из другого модуля, которая не static и почему то ее нет в заголовочник или самого заголовочника нет.

Тогда только с extern
источник

VO

Vyacheslav Olkhovche... in Embedded Group
это только если ты внутри функции её определить хочешь
источник

LZ

Leonid Zaliubovskii in Embedded Group
Да, я про это
источник

W

Wild_Wind in Embedded Group
cat a.h
#pragma once

int foo();
// end a.h

cat a.c
#include "a.h"

int foo(){}

// end a.c

cat b.c
void bar(){
       int foo();
       foo();
}

int _start(){}

// end b.c


# /usr/bin/arm-none-eabi-gcc a.c b.c -nostdlib -std=c99
-Werror -Wpedantic

Всё работает и без extern.
источник

LZ

Leonid Zaliubovskii in Embedded Group
А ты убери #include "a.h"
источник

W

Wild_Wind in Embedded Group
В b.c его и нет.
источник

W

Wild_Wind in Embedded Group
Он есть в a.c.
источник

LZ

Leonid Zaliubovskii in Embedded Group
И с99 прикрути
источник

LZ

Leonid Zaliubovskii in Embedded Group
А, увидел что два разных файла
источник

GZ

Genadi Zawidowski in Embedded Group
Просто так.
источник

W

Wild_Wind in Embedded Group
работает.
источник

LZ

Leonid Zaliubovskii in Embedded Group
Хотя, честно скажу, что я никогда не пробовал без extern использовать.

Так что вполне может и работает функции без него.

И касается только переменных.
источник

W

Wild_Wind in Embedded Group
Я тоже ни разу не использовал extern до сего дня при объявлении функций.
источник

LZ

Leonid Zaliubovskii in Embedded Group
Хехе, буду знать что можно немножко байт сэкономить
источник

W

Wild_Wind in Embedded Group
Ага. В исходниках :)
источник

LZ

Leonid Zaliubovskii in Embedded Group
Лайк за то что проверил. Я на автомате фигачу экстерн для функций и переменных уже лет 7 уже наверное, если вдруг нужно в функции вызвать другую функцию иди переменную из внешнего модуля

👍
источник

LZ

Leonid Zaliubovskii in Embedded Group
Именно
источник

W

Wild_Wind in Embedded Group
:)
источник

IN

ISAK Neuman in Embedded Group
кайф
источник

LZ

Leonid Zaliubovskii in Embedded Group
Ещё наверное из плюсов, чисто стилистически видно что она внешняя.

Я завтра на работе попробую на armcc тоже самое. Ради интереса, хотя он gnu extensions поддерживает может и будет работать тоже
источник