До сих пор традиционной книге, я сильно сомневаюсь, он будет постоянно обновляться, как хорошая страница Вики будет... Это много различного рода ошибок, чем это предусмотрено в этот вопрос. Но вы правы, что, к сожалению, как это произошло, эффект был тот же. Я думаю, что ты немного непонимания, как аппаратный кошелек работает. Вы не можете иметь свои монеты, одновременно храниться на оборудовании кошелек, и можно торговать на бирже. Вы можете хранить ваши монеты на аппаратной бумажник, а затем, если вы хотите торговать, вы будете иметь, чтобы отправить транзакцию внесения их в обмен на выбор. Когда закончите торговле, вы запросите вывод средств, чтобы вернуть деньги обратно в свой кошелек-устройство. хорошо. ваш ответ голоса очень личное мнение. пожалуйста, будьте более объективны в свой следующий ответ.

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

пустота noui_connect();

пустота noui_connect() {/*что-то*/}

^^^Компилятор может легко найти, который является прототипом и которая является реализацией той же функции. Однако

// главная.ч
инт а;
// главная.с
#включить "главный.ч"
тип int а = 5;
// утиль.с
#включить "главный.ч"

^^^Компилятор может создать два символа. Один в основном.содной в утиль.гр. Чтобы не допустить создания еще одной переменной модификатор extern ключевое слово используется, чтобы оставить переменную в компоновщик, последний шаг на этапе компиляции.

Напротив, прототипы функций, а не реализаций помещаются в заголовочные файлы, которые всегда остаются в компоновщик. Потому что прототипы функций предназначены, они не нужны Экстерн.

Если вы видите Экстерн прежде чем прототипы функций, это чистый стиль кодирования, вероятно, чтобы быть совместимым с другими модификатор extern переменных.