青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 319, comments - 22, trackbacks - 0, articles - 11
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

Qt全局宏和變量

Posted on 2011-07-26 06:53 RTY 閱讀(4284) 評論(0)  編輯 收藏 引用 所屬分類: Qt 、C/C++ 、轉載隨筆

1.  Qt 全局宏定義

Qt版本號:

 QT_VERSION :  (major << 16) + (minor << 8) + patch

檢測版本號:

QT_VERSION_CHECK(major, minor, patch)((major<<16)|(minor<<8)|(patch))

當使用命名空間時的一些宏定義:

namespace QT_NAMESPACE {} //命名空間定義

# define QT_PREPEND_NAMESPACE(name) ::QT_NAMESPACE::name

# define QT_USE_NAMESPACE using namespace ::QT_NAMESPACE;

# define QT_BEGIN_NAMESPACE namespace QT_NAMESPACE {

# define QT_END_NAMESPACE }

# define QT_BEGIN_INCLUDE_NAMESPACE }

# define QT_END_INCLUDE_NAMESPACE namespace QT_NAMESPACE {

# define QT_BEGIN_MOC_NAMESPACE QT_USE_NAMESPACE

# define QT_END_MOC_NAMESPACE

# define QT_FORWARD_DECLARE_CLASS(name) /

    QT_BEGIN_NAMESPACE class name; QT_END_NAMESPACE /

    using QT_PREPEND_NAMESPACE(name);

 

# define QT_FORWARD_DECLARE_STRUCT(name) /

    QT_BEGIN_NAMESPACE struct name; QT_END_NAMESPACE /

    using QT_PREPEND_NAMESPACE(name);

Q_GLOBAL_STATIC(type, name)用于定義一個全局的靜態變量(線程安全的).用它來初始化一個對象指針(函數指針).

Q_GLOBAL_STATIC_WITH_ARGS(type, name, arguments):同上,可帶參數.

 

Q_UNUSED():通常用于某個函數的參數,表明該參數未在方法體中使用.

常用數據類型:

qint8, quint8, qint16, quint16, qint32, quint32, qint64, quint64, qlonglong(=int64), qulonglong(=uint64)

quintptr, qptrdiff, 作為指針是一樣大的.如:

      sizeof(void *) == sizeof(quintptr)

      && sizeof(void *) == sizeof(qptrdiff)

Qt有用的類型定義:uchar, ushort, uint, ulong

實用內聯函數:qAbs(), qRound(), qRound64(), qMin(), qMax(), qBound();

try-catch宏:

#ifdef QT_NO_EXCEPTIONS

#  define QT_TRY if (true)

#  define QT_CATCH(A) else

#  define QT_THROW(A) qt_noop()

#  define QT_RETHROW qt_noop()

#else

#  define QT_TRY try

#  define QT_CATCH(A) catch (A)

#  define QT_THROW(A) throw A

#  define QT_RETHROW throw

#endif

每個QT_TRY對應一個QT_CATCH,不要在catch語句塊中使用異常實例.

 

調試相關函數:

qDebug(), qWarnig(), qCritical(), Q_ASSERT()

 

其他一些函數:

該宏用于定義某個類,禁止拷貝

#define Q_DISABLE_COPY(Class) /

    Class(const Class &); /

    Class &operator=(const Class &);

qgetenv(), qputenv(), qIntCast(double 或float). qsrand(uint seed), qrand()

2. Qt的內存管理函數

void *qMalloc(size_t size);

void qFree(void *ptr);

void *qRealloc(void *ptr, size_t size);

void *qMallocAligned(size_t size, size_t alignment)

void *qReallocAligned(void *oldptr, size_t newsize, size_t oldsize, size_t alignment)

void qFreeAligned(void *ptr)

void *qMemCopy(void *dest, const void *src, size_t n);

void *qMemSet(void *dest, int c, size_t n);

注: 數組下標為-1的地址對于數組來說是越界訪問了,但是這個地址是有意義的.這個地址就是所申請的數組存儲空間的首地址的向前偏移一個單位(也就是偏移一個當前數組類型所對應的字節數)所對應的地址。這個地址由于沒有跟著數組空間一起初始化,所以其中的數據是不確定的.如果是正在被系統或者其他應用程序使用中的地址空間,那么可以被訪問,其中的數據的意義取決于被系統或者其他應用程序所寫入的數據,但是訪問后,有可能會引起系統或者其他應用程序異常。如果是沒有被使用的地址,那么就是一個野地址,那么其中的數據是隨機的,無意義的

 

3. 環境變量設置函數

qputenv():與putenv()基本類似,由于VC2005后廢除了putenv()函數,所有定義了此函數,在VC環境中調用替代的函數,其他平臺調用標準C庫函數putenv().

qgetenv():獲取某個環境變量的值.

 

4.自定義輸出函數

QtMsgHandler qInstallMsgHandler(QtMsgHandler h)

其中:typedef void (*QtMsgHandler)(QtMsgType, const char *);

利用該函數可定制自己的調試信息輸出.

 

5. 斷言

Q_ASSERT(bool test):當斷言失敗時,打印出警告信息,包含了源碼文件名和行號.

void Q_ASSERT_X(bool test, const char *where, const char *what)

 

void Q_CHECK_PTR(void *pointer):檢測非法指針,如果指針為0,打印警告信息.

 

6.系統信息類QsysInfo

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            激情六月综合| 夜夜嗨av一区二区三区网站四季av| 午夜精品成人在线视频| 日韩视频在线你懂得| 欧美精品一区二区三区很污很色的 | 99这里有精品| 一本色道久久加勒比精品| 欧美日韩麻豆| 欧美中文字幕在线| 久久久久国产精品麻豆ai换脸| 一区在线免费观看| 欧美激情片在线观看| 午夜精品视频在线观看一区二区| 中文久久精品| 国产亚洲一二三区| 亚洲第一区在线| 欧美午夜免费影院| 久久久精品动漫| 欧美成人精品影院| 亚洲女性裸体视频| 久久久国产成人精品| 99这里只有精品| 欧美一区二区三区男人的天堂 | 国产一区香蕉久久| 亚洲高清不卡在线| 欧美新色视频| 嫩草成人www欧美| 欧美性猛交一区二区三区精品| 久久久久久久久久久一区| 欧美成人在线影院| 欧美在线3区| 欧美激情在线| 久久综合一区二区三区| 欧美日韩91| 免费观看日韩| 国产精品视频xxxx| 亚洲欧洲精品成人久久奇米网| 国产精品一区二区久激情瑜伽| 欧美成人午夜剧场免费观看| 国产精品婷婷| 亚洲精品久久久一区二区三区| 久久天堂av综合合色| 亚洲天堂av在线免费| 麻豆久久精品| 夜夜爽夜夜爽精品视频| 久久国产精品色婷婷| 99精品国产在热久久| 久久综合狠狠综合久久综青草| 午夜天堂精品久久久久| 欧美激情精品| 午夜影视日本亚洲欧洲精品| 嫩模写真一区二区三区三州| 久久久久国产精品一区| 欧美视频在线一区二区三区| 亚洲成人自拍视频| 欧美日韩亚洲高清| 欧美国产日韩一区二区三区| 国内精品久久久久久久果冻传媒| 亚洲少妇自拍| 亚洲一二三四久久| 欧美日韩天堂| av不卡在线| 亚洲午夜国产成人av电影男同| 欧美—级高清免费播放| 欧美福利一区二区| 亚洲国产欧美不卡在线观看| 久久久久欧美精品| 老色鬼久久亚洲一区二区| 狠久久av成人天堂| 久久久噜噜噜久久| 免费观看不卡av| 亚洲第一页在线| 欧美mv日韩mv国产网站| 欧美成人午夜视频| 亚洲日韩欧美视频一区| 欧美国产日韩视频| 99国产精品私拍| 午夜精品在线视频| 国产一区二区三区免费在线观看| 欧美在线观看视频在线| 亚洲一区二区网站| 国产精品夜色7777狼人| 亚洲欧美成人网| 久久亚洲精选| 亚洲精品你懂的| 国产精品久久久久av免费| 亚洲一区二区伦理| 久久亚洲不卡| 亚洲精品中文字幕有码专区| 欧美日韩999| 欧美亚洲系列| 亚洲国产精品尤物yw在线观看| 亚洲美女免费精品视频在线观看| 欧美日韩精品免费观看视一区二区 | 裸体丰满少妇做受久久99精品| 在线观看一区视频| 欧美久久影院| 欧美一级片久久久久久久| 欧美阿v一级看视频| 亚洲乱码精品一二三四区日韩在线 | 亚洲日本国产| 午夜日韩在线观看| 亚洲国产精品精华液2区45| 欧美麻豆久久久久久中文| 一区二区高清视频| 欧美不卡激情三级在线观看| 一区二区三区四区五区精品| 国产一区二区电影在线观看| 欧美精品18+| 性做久久久久久久免费看| 亚洲第一黄色网| 久久久精品一区二区三区| 亚洲美洲欧洲综合国产一区| 国产伦精品一区二区三区照片91| 另类成人小视频在线| 亚洲桃花岛网站| 亚洲第一偷拍| 久久高清一区| 亚洲小少妇裸体bbw| 亚洲国产精品第一区二区三区| 国产精品毛片va一区二区三区| 久久综合一区二区三区| 亚洲欧美另类在线观看| 亚洲另类一区二区| 欧美1区2区视频| 久久久777| 性欧美长视频| 亚洲欧美另类在线| 亚洲靠逼com| 亚洲国产精品ⅴa在线观看| 国产精品老牛| 欧美午夜一区二区| 欧美另类视频在线| 麻豆成人小视频| 欧美在现视频| 久久国产精品久久久久久久久久| 亚洲一区久久久| 一本色道久久综合| 日韩一级精品视频在线观看| 亚洲激情另类| 亚洲国产第一| 亚洲国产人成综合网站| 欧美大片在线看| 欧美国产日韩一区二区在线观看| 免费观看一区| 欧美国产视频一区二区| 欧美成人精品h版在线观看| 久久综合网色—综合色88| 久久精品一区二区| 久久男女视频| 欧美激情亚洲国产| 亚洲国产成人精品久久久国产成人一区| 蜜桃精品一区二区三区| 免费中文字幕日韩欧美| 欧美1级日本1级| 亚洲欧洲日产国产网站| 亚洲精品美女免费| 99精品热视频| 欧美一区二区视频在线观看| 欧美在线观看视频一区二区三区| 久久99在线观看| 久久天天躁狠狠躁夜夜av| 免费久久99精品国产自在现线 | 亚洲日本va午夜在线电影| 亚洲激情啪啪| 亚洲夜间福利| 久久精品国产99国产精品澳门 | 亚洲色在线视频| 欧美一区2区视频在线观看| 久久久久天天天天| 欧美精品一卡二卡| 国产精品视频免费观看| 一区在线免费| 一区二区三区精品视频在线观看| 午夜精品久久久久久久99樱桃| 久久九九免费视频| 亚洲成色777777在线观看影院| 亚洲区一区二区三区| 亚洲天堂网站在线观看视频| 欧美一区中文字幕| 欧美成人四级电影| 国产欧美日韩另类视频免费观看| 精品1区2区3区4区| 一区二区日韩| 久热国产精品| 亚洲一级片在线观看| 久久亚洲色图| 国产精品一区二区久激情瑜伽| 在线精品福利| 西瓜成人精品人成网站| 欧美暴力喷水在线| 亚洲欧美成人一区二区三区| 欧美成人a∨高清免费观看| 国产精品日韩一区| 亚洲精品欧美专区| 久久网站免费| 亚洲欧美综合一区| 欧美日韩亚洲另类| 亚洲日本电影| 免费亚洲电影|