LINUX.ORG.RU

static void при переносе на отдельную строку даёт ошибку.

 ,


0

3

Есть функция:

static void my_pretty_awesome_func_not_fitting_80_columns(const awesome_t awesome_arg)
{
  // awesome code
}

Чтобы она влезала в 80 символов по горизонтали пишу:

static void 
my_pretty_awesome_func_not_fitting_80_columns(const awesome_t awesome_arg)
{
  // awesome code
}

Но начинает выдавать ошибку:

error: 'void my_pretty_awesome_func_not_fitting_80_columns(const awesome_t)' was declared 'extern' and later 'static' [-fpermissive]

Используется arduino-cli (С++ под капотом).

Быстро, решительно поясни, чего ты хочешь добиться использованием ключевого слова static.

Подсказка: в C и в C++ оно имеет совершенно разные значения и используется в разных контекстах.

anonymous
()
Ответ на: комментарий от anonymous

использованием ключевого слова static.

Чтобы сделать функция невидимой для редактора связей.

в C и в C++ оно имеет совершенно разные значения и используется в разных контекстах.

Для функций, работает также: https://en.cppreference.com/w/cpp/keyword/static.html

Jullyfish
() автор топика

Точно переносов кривых не делаете ? Как вариант стоит попросить компилятор генернуть препроцессор, авось как-то экзотично разворачвается.

anonymous
()
Ответ на: комментарий от legolegs

Да, вы правы:

Yes, the Processing language (on which the Arduino IDE is based) also automatically generates function prototypes for user-defined functions, similar to the Arduino IDE. This behavior is inherited from their shared history, as both Processing and the Arduino IDE were designed to simplify coding for beginners by handling some of the more manual aspects of C/C++ compilation.
Jullyfish
() автор топика

Чтобы она влезала в 80 символов по горизонтали

Пройдись по помойкам в районе - может кто-то вынес старый монитор.

LamerOk ★★★★★
()

Ну это ещё смешнее чем захардкоженный 1TBS стиль расставления фигурных скобок в QMake.

Впрочем расширение у таких файлов в которые ты добавляешь функции – .ino, не .c? Что намекает на их препроцессинг.

А вообще вместо 80 переходи на 120, это давным-давно новый и удобный стандарт ширины колонки.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от EXL

А вообще вместо 80 переходи на 120, это давным-давно новый и удобный стандарт ширины колонки.

Лучше приучиться выбирать идентификаторам нормальные имена. А не дециметровую лапшу, для чтения которой нужно прилагать дополнительные когнитивные усилия.

urxvt ★★★★★
()
Последнее исправление: urxvt (всего исправлений: 2)
Ответ на: комментарий от EXL

Впрочем расширение у таких файлов в которые ты добавляешь функции – .ino, не .c? Что намекает на их препроцессинг.

Не так много, поэтому такие намёки ещё не понимаю.

Jullyfish
() автор топика
Ответ на: комментарий от anonymous

Подсказка: в C и в C++ оно имеет совершенно разные значения и используется в разных контекстах.

Не ври. В С++ просто ещё один смысл добавили, в остальном разницы нет.

firkax ★★★★★
()

Сорян за оффтоп %)

@XMPP мне очень приятно, спасибо. Стараюсь для своих фанатов!

Вместе с тем, я тут пытался квест пройти, но модераторы предпенсионного возраста с белочкой всё портят. Я потом другой аккаунт создам, так что не скучайте.

l: hateyoufeel

p: dimezneedstostopdrinking

anonymous
()
Ответ на: комментарий от Jullyfish

Меня веселит еще то, что часто думают, что чем больше слов в название впихнут тем оно понятней. Если человек в проекте не шарит, то каким бы длинным название не было оно ему ничего не скажет. А если шарит, то достаточно намека, и он поймет о чем речь. Очень часто с этим сталкиваюсь.

urxvt ★★★★★
()

Ты где-то с объявлением функции надристал, очевидно же.
Поищи по коду посмотри как она у тебя объявлена и где вызывается.

И вообще плюсы как бы ооп и сделали чтоб с этой ерундой из си не возится больше, пишешь класс с матодами и все не надо думать где там функции объявлены.

uin ★★★
()