• <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>

            牽著老婆滿街逛

            嚴以律己,寬以待人. 三思而后行.
            GMail/GTalk: yanglinbo#google.com;
            MSN/Email: tx7do#yahoo.com.cn;
            QQ: 3 0 3 3 9 6 9 2 0 .

            ffmpeg 中的GNU語法

            轉載自:http://blog.chinaunix.net/uid-21564437-id-3034917.html

                閱讀ffmpeg源碼是 發現一些函數前面加了 attribute_deprecated 屬性;如:attribute_deprecated int url_fopen( AVIOContext **s, const char *url, int flags);
            在libavutil/attributes.h  中有如下定義:

            #ifndef attribute_deprecated
            #if AV_GCC_VERSION_AT_LEAST(3,1)
            #    define attribute_deprecated __attribute__((deprecated))
            #else
            #    define attribute_deprecated
            #endif
            #endif

            __attribute__ 語法為GNU C 的特性,__attribute__可以設置函數屬性(Function Attribute)、變量屬性(Variable Attribute)和類型屬性(Type Attribute)。
            __attribute__語法格式為:__attribute__ ((attribute))
            需要注意的是: 使用__attribute__的時候,只能函數的聲明處使用__attribute__,并且在“;“前。

            在開發一些庫的時候,API的接口可能會過時,為了提醒開發者這個函數已經過時。只要函數被使用,在編譯是都會產生警告,警告信息中包含過時接口的名稱及代碼中的引用位置。
            下面是GNU 網站(http://gcc.gnu.org/onlinedocs/gcc-4.0.0/gcc/Function-Attributes.html)上對這個屬性的解釋:
            deprecated
            The deprecated attribute results in a warning if the function is used anywhere in the source file. This is useful when identifying functions that are expected to be removed in a future version of a program. The warning also includes the location of the declaration of the deprecated function, to enable users to easily find further information about why the function is deprecated, or what they should do instead. Note that the warnings only occurs for uses:
                      int old_fn () __attribute__ ((deprecated));
                      int old_fn ();
                      int (*fn_ptr)() = old_fn;
                
            results in a warning on line 3 but not line 2.
            下面是一個列子:
            root@wang:/work/wanghuan/gnu# cat gnu.c

            #include <stdlib.h>
            #include 
            <stdio.h>

            __attribute__((deprecated)) 
            void attribute();
            void attribute()
            {
             printf(
            "GNU attribute \n");
            }


            int main()
            {
             attribute();
             
            return 0;
            }

            root@wang:/work/wanghuan/gnu# gcc gnu.c -o gnu
            gnu.c: In function ‘main’:
            gnu.c:12: warning: ‘attribute’ is deprecated (declared at gnu.c:5)     //編譯警告
            root@wang:/work/wanghuan/gnu# ./gnu
            GNU attribute

            關于__attribute__屬性,有多種類型,由于ARM編譯器支持GNU語法,在ARM的網站http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0348bc/Caccahah.html 有這些特性的詳細介紹。

            posted on 2013-01-29 16:05 楊粼波 閱讀(796) 評論(0)  編輯 收藏 引用

            国产成人久久精品一区二区三区| 国产精品久久久亚洲| 狠狠色丁香久久婷婷综合蜜芽五月 | 狠狠色丁香久久婷婷综合_中| 思思久久99热免费精品6| 国内精品综合久久久40p| 久久99精品久久久久久| 亚洲午夜无码AV毛片久久| 日韩精品久久无码人妻中文字幕| 久久无码av三级| 无码人妻久久一区二区三区蜜桃| 一本久久a久久精品综合夜夜| 欧美成人免费观看久久| 69久久夜色精品国产69| 国内精品九九久久精品| 色婷婷久久久SWAG精品| 欧美激情精品久久久久| 久久天天躁狠狠躁夜夜网站 | 99久久国产综合精品五月天喷水| 久久精品国产色蜜蜜麻豆| 久久久久综合中文字幕| 成人精品一区二区久久| 国产美女久久精品香蕉69| 精产国品久久一二三产区区别| 久久久久97国产精华液好用吗| 国产精品美女久久久| 996久久国产精品线观看| 婷婷久久香蕉五月综合加勒比| 狠狠色丁香久久婷婷综合_中 | 亚洲七七久久精品中文国产| 精品久久国产一区二区三区香蕉| 青青青国产成人久久111网站| 国产亚洲综合久久系列| 99久久综合狠狠综合久久止| 久久婷婷五月综合色高清| 国产激情久久久久久熟女老人| 精品久久久久久无码不卡| 日批日出水久久亚洲精品tv| 婷婷久久综合| 99久久精品国产一区二区| 无码国产69精品久久久久网站|