天天看點

codeblocks的智能代碼提示缺陷

最近在學linux C語言程式設計,作為一個菜鳥的我,當然是從基本開始了,按照書一步一步的來,因為自己畢竟學過C語言,也學過單片機,是以對C語言還是相對比較熟悉的。

果不其然,前面的幾個章節輕松一帶而過,但是後面的程序線程之類的就有點糾結了,因為是作業系統知識,作為一名非計算機專業小白,隻能自己慢慢補,但是偶然看到網絡部分還是挺有意思的,準備先玩耍下。

糾結開始了,遇到的問題已經在這裡了http://bbs.csdn.net/topics/390855244

主要問題是結構體類型在進行智能提示的時候不完整,有缺陷;

結構體類型的的變量成員如果包含了其他結構體,或者帶參數的宏定義之類變量,在結構體變量名字+‘.'後不會出現這些成員,這是結論。

驗證過程:因為長時間無法解決,我準備開始懷疑codeblocks了,在win 7上試試。

#include<stdio.h>
#include<string.h>
#include <stdio.h>
#include<stdlib.h>
struct mes
{
    char tel_num[12];
    char addr[12];
    int age;
};
struct person
{
    char name[12];
    struct mes s;
};
int main()
{
    struct person one;
    struct mes address;
    return 0;
}
           

這是測試代碼,如果我編輯one+'.'和address+'.'分别出現如圖所示情況。

codeblocks的智能代碼提示缺陷
codeblocks的智能代碼提示缺陷

在vc++6.0下就不是這樣的。這真的是一個問題嗎,如果真是這樣我感覺不可能,因為codeblocks開發者不應該沒有考慮到這樣的問題,這不算是一個高深的問題。如果不是問題,那麼這是怎麼回事呢,畢竟結構體的嵌套還是經常用到的,如果出現這種情況對于程式員應該是件頭疼的事情,因為在大量的代碼中,你很難記清楚一個結構體成員是不存在而沒有顯示出來,還是因為這些類似的問題沒有被顯示出來,在這裡希望能夠解決的人也提供下方案。如果确實是這樣的希望大家注意就是了,後來看到有人說Qt挺好用的,後來試了試發現确實比codeblocks智能多了。

繼續閱讀