На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
  
> C пустая декларация , C Pitfals
    Всем дд списал вот такое

    ExpandedWrap disabled
      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 @
        Ну ты взял значение функционального типа, оно отдекейелось к указателю на функцию... и всё. Это всё разрешённые операции, откуда ошибка? Только толку от него нет, ибо это просто выражение без любого влияющего на исполнительное окружение эффекта, отсюда предупреждение.

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

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

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

              OpenGL,
              Мне тоже так показалось ;)
                Цитата sergioK @
                не видел в литературе такого слова, по-русски вроде говорят "приводиться" хотя не большой его знаток , в английском это casting, trasform , mapping, reform, remake convert, в крайнем случае became, ...
                Это не любой "приводится", который известен как "cast". Это вполне конкретные касты, которые выделяются в отдельное понятие, потому что выполняются очень часто и незаметно.

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

                  Правильней создать холивар как надо переводить с английского на русский, ;) >:(
                  Сообщение отредактировано: Qraizer -
                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0,0269 ]   [ 17 queries used ]   [ Generated: 25.04.24, 16:46 GMT ]