1

私の質問は次のとおりです。「pMessage」、「aiLength」、「szDataSize」を印刷する方法は?

EventInfo* pEventInfo

typedef struct {
        char* pMessage;
        SocketHeader* pSocketHeader;
        PipeHeader* pPipeHeader;
} EventInfo;

typedef struct {
        apr_uint32_t aiLength;
} PipeHeader;

typedef struct {
        apr_uint32_t szDataSize;
} SocketHeader;

「apr_uint32_t」とは何ですか?

4

5 に答える 5

2

apr_uint32_tApache Portable Runtimeプロジェクトの移植可能な 32 ビット符号なし整数です。

確かに32ビット幅であることがわかっているネイティブの符号なし整数をprintfするのと同じ方法でフォーマットする必要があり ます。この回答で推奨されているように、PRIu32フォーマット指定子を使用してください

(補足として、他の apr ポータブル タイプには、独自のプラットフォーム固有の printf 指定子が付属しています。たとえば、apr_uint64_t対応する APR_UINT64_T_FMT があります。ただし、このタイプにはありません。)

于 2013-06-06T05:19:19.783 に答える
0

実際 apr_uint32_t はtypedefですunsigned int

http://www.cplusplus.com/reference/cstdio/printf/ printf() のフォーマット指定子については、

このコードを参照してください http://svn.haxx.se/dev/archive-2004-04/att-0788/intl.c

もう 1 つのサンプルhttp://src.gnu-darwin.org/ports/sysutils/ftwin/work/ftwin-0.8.0/src/checksum.c.html

于 2013-06-06T05:04:36.237 に答える
0

これを試して

EventInfo eventInfo;
SockHeadExample sHead;
PipeHeader pipeHeader
printf("%s", eventInfo.pMessage);  // <- pMessage
printf("%u", sHead.szDataSize);    // <- szDataSize
printf("%u", pipeHeader.aiLength); // <- aiLength

働く

apr_uint32_tunsigned intそれはApacheライブラリtypedefによるものですか

参照

于 2013-06-06T05:05:19.457 に答える
0

apr_uint32_t は unsigned int であるため、次に何をすべきかを知っておく必要があります。

于 2013-06-06T05:19:33.150 に答える