<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      error: conflicting types for xxx in c

      一、問題描述

      #include <stdio.h>
      
      #define MAXLINE 1000
      
      /* maximum input line length */
      int getline(char lines[], int maxline);
      void copy(char to[], char from[]);
      
      int main(void)
      {
          int len;  // current line length
          int max;  // maximum lenght seen so far
          char line[MAXLINE]; // current input line
          char longest[MAXLINE]; // longest line
      
          max = 0;
          while ((len = getline(line, MAXLINE)) > 0)
              if ( len > max) {
                max = len;
                copy(longest, line);
              }
          if (max > 0)
              printf("%s", longest);
      
          return 0
      
      }
      
      int getline(char s[], int lim)
      {
          int c, i;
      
          for(i = 0; i < lim -1 && (c = getchar()) != EOF && C != '\n'; ++i)
              s[i] += c;
          if (c == '\n') {
              s[i] = c;
              ++i;
          }
      
          return i;
      }
      
      
      void copy(char to[], char from[])
      {
          int i;
      
          i = 0;
          while ((to[i] = from[i]) != '\0')
              ++i;
      }
      

      運行以上代碼的時候出現錯誤提示:error: conflicting types for 'getline'; have 'int(char *, int)'。代碼來源于《C Programming Language》。

      二、問題分析

      這段代碼來自于 《C Programming Language》這本經典的書,按理說不應該有問題,要有問題的話往往可能是因為時間久遠,C語言發生了變化。

      根據提示 conflicting types —— conflicting: are different and apposing ,對于 getline() 函數,應該是它的 type 在某兩個地方(函數聲明&函數定義)不一樣,可能是函數的參數類型不一樣,也有可能是函數的返回類型不一樣。

      我們先來看下函數聲明:

      int getline(char lines[], int maxline);
      

      再來看下函數定義:

      int getline(char s[], int lim)
      

      奇怪,函數的參數類型和函數的返回類型都一樣啊,為什么還會提示錯誤呢?既然這兩個地方沒有問題,那么就剩下函數名了,這里應該有問題。那就換一個名字吧,比如改成 getaline

      #include <stdio.h>
      
      #define MAXLINE 1000
      
      /* maximum input line length */
      int getaline(char lines[], int maxline);
      void copy(char to[], char from[]);
      
      int main(void)
      {
          int len;  // current line length
          int max;  // maximum lenght seen so far
          char line[MAXLINE]; // current input line
          char longest[MAXLINE]; // longest line
      
          max = 0;
          while ((len = getaline(line, MAXLINE)) > 0)
              if ( len > max) {
                max = len;
                copy(longest, line);
              }
          if (max > 0)
              printf("%s", longest);
      
          return 0;
      
      }
      
      int getaline(char s[], int lim)
      {
          int c, i;
      
          for(i = 0; i < lim -1 && (c = getchar()) != EOF && c != '\n'; ++i)
              s[i] += c;
          if (c == '\n') {
              s[i] = c;
              ++i;
          }
      
          return i;
      }
      
      void copy(char to[], char from[])
      {
          int i;
      
          i = 0;
          while ((to[i] = from[i]) != '\0')
              ++i;
      }
      
      

      這樣一改,還真可以了。但是好像還是沒有解釋為什么 getline()這個函數名被占用了呢?根據 資料getline()a GNU extension,因為本文著重于講解如何從提示去分析問題,所以對于 getline() 函數如何造成這種沖突的不展開講解。

      三、解決方法

      將函數名 getline修改成其它名字, 比如改成 getaline

      四、總結

      這個問題之所以給我造成困擾,在于問題的原因表現得并不是那么直接——并不能直接從源代碼看出來,同時也反映了我對 getline是如何引入的并不了解,這是需要深入挖掘的地方。

      歡迎搜索及關注:編程人

      posted @ 2022-05-28 10:48  codists  閱讀(782)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产乱女乱子视频在线播放| 又粗又大又硬又长又爽| h无码精品3d动漫在线观看| 日韩人妻一区中文字幕| 免费无码成人AV片在线| 好吊妞人成视频在线观看| 国产精品自拍视频我看看| 国产精品中文字幕一区| 欧美大bbbb流白水| 婷婷色香五月综合缴缴情香蕉| 亚洲中文字幕第二十三页| 日韩无码视频网站| 国产精品十八禁在线观看| 国模少妇无码一区二区三区| 亚洲精品电影院| 国产精成人品| 人人妻人人做人人爽夜欢视频| 国产欧美精品aaaaaa片| 亚洲中文字幕久久精品品| 人妻夜夜爽天天爽三区丁香花| 亚洲综合精品香蕉久久网| 国产在线中文字幕精品| 成人网站av亚洲国产| 国产色视频一区二区三区qq号| 亚洲av成人久久18禁| 国产一区二区不卡91| 大地资源免费视频观看| 无码中文字幕av免费放| 91青青草视频在线观看的| 亚洲精品日韩在线观看| 中文日产乱幕九区无线码| 少妇激情一区二区三区视频| 成人午夜av在线播放| 天堂久久久久VA久久久久| 国产精品一区二区三区性色 | 亚洲春色在线视频| 欧美特级午夜一区二区三区| 精品国产粉嫩一区二区三区| 精品国产欧美一区二区三区在线| 亚洲国产精品线观看不卡| 免费无码黄动漫在线观看|