Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > C/C++: Общие вопросы > C пустая декларация


Автор: sergioK 25.02.20, 11:44
Всем дд списал вот такое

<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    void display_str(char name[]){
        printf("your name is:\t");
        puts(name);
        printf("%s", name);
    }
     
    int main(){
        char name[30];
        printf("please enter your name\n");
        fgets(name, sizeof(name), stdin);
        display_str;   // забыл про параметер
        return 0;  
    }


Вот компилятор кричит main.c|21|warning: statement with no effect [-Wunused-value]|, а "должен бы " ошибку выдавать, если функция внизу то таки ругается, а снизу нет и линкер молчит ,
ну Я то до конца не понимаю,(знаю из практики что так) а как это обьяснить студентам, какой такой statement ? ну допустим Я так написал и как этот display_str потом использовать

Автор: Qraizer 25.02.20, 12:03
Ну ты взял значение функционального типа, оно отдекейелось к указателю на функцию... и всё. Это всё разрешённые операции, откуда ошибка? Только толку от него нет, ибо это просто выражение без любого влияющего на исполнительное окружение эффекта, отсюда предупреждение.

Автор: sergioK 25.02.20, 12:10
Цитата Qraizer @
Ну ты взял значение функционального типа, оно отдекейелось к указателю на функцию... и всё. Это всё разрешённые операции, откуда ошибка? Только толку от него нет, ибо это просто выражение без любого влияющего на исполнительное окружение эффекта, отсюда предупреждение.

что такое отдекейелось , по-русски ;)

Автор: OpenGL 25.02.20, 12:52
std::decay
Скрытый текст
А вообще я сначала про D_KEY подумал :D

Автор: Qraizer 25.02.20, 12:54
decay. По-русски "сведение" говорят, вроде бы. Ещё массивы так к указателям сводятся. И обратно указатели на функции к функциям, что позволяет писать просто fPtr() вместо (*fPtr)().

Автор: sergioK 25.02.20, 14:46
Цитата Qraizer @
decay. По-русски "сведение" говорят, вроде бы. Ещё массивы так к указателям сводятся. И обратно указатели на функции к функциям, что позволяет писать просто fPtr() вместо (*fPtr)().

Это какой то экзотический английский ;) не видел в литературе такого слова, по-русски вроде говорят "приводиться" хотя не большой его знаток , в английском это casting, trasform , mapping, reform, remake convert, в крайнем случае became,

Ладно черт с ним, тут не тут не школа английского, по мне так вопрос закрыт
th4u, или давай его в холивары, у меня по ним ностальгия :tong:

OpenGL,
Мне тоже так показалось ;)

Автор: Qraizer 25.02.20, 15:12
Цитата sergioK @
не видел в литературе такого слова, по-русски вроде говорят "приводиться" хотя не большой его знаток , в английском это casting, trasform , mapping, reform, remake convert, в крайнем случае became, ...
Это не любой "приводится", который известен как "cast". Это вполне конкретные касты, которые выделяются в отдельное понятие, потому что выполняются очень часто и незаметно.

Добавлено
Цитата sergioK @
Мне тоже так показалось ;)
Отъёлки. Я ж специально там е поставил, хотя правильней было бы сказать отдикейится...

Автор: sergioK 25.02.20, 15:26
Цитата Qraizer @
Отъёлки. Я ж специально там е поставил, хотя правильней было бы сказать отдикейится...

Правильней создать холивар как надо переводить с английского на русский, ;) >:(

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)