锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品一区二区三区成人,久久国产精品久久久久久电车,国产欧美激情http://m.shnenglu.com/Walker/category/16499.html鍏堝浼氳漿鏂囩珷錛屽湪浠旂粏璇繪枃绔狅紝鏈鍚庤嚜宸卞啓鐐逛笢瑗?.......zh-cnSun, 24 Apr 2011 23:37:40 GMTSun, 24 Apr 2011 23:37:40 GMT60SDI Minimize and Maxinum flash windwhttp://m.shnenglu.com/Walker/articles/144094.html婕鑰吤?amp;鈥︹?錕?/dc:creator>婕鑰吤?amp;鈥︹?錕?/author>Wed, 13 Apr 2011 02:02:00 GMThttp://m.shnenglu.com/Walker/articles/144094.htmlhttp://m.shnenglu.com/Walker/comments/144094.htmlhttp://m.shnenglu.com/Walker/articles/144094.html#Feedback0http://m.shnenglu.com/Walker/comments/commentRss/144094.htmlhttp://m.shnenglu.com/Walker/services/trackbacks/144094.htmlWhy the flash occurs

In order to understand why the application does not minimize properly, we need to look into the MFC code that constructs and displays the main window. By placing a breakpoint in the ProcesShellCommand function, we see that, by default, the AppWnd OnFileNew handler is called. OnFileNew calls the CDocument* CDocument* CSingleDocTemplate::OpenDocumentFile(LPCTSTR lpszPathName,BOOL bMakeVisible) OpenDocument, which creates a new document instance, creates a new frame for the document, and finally displays the window by calling InitialUpdateFrame(pFrame, pDocument, bMakeVisible);, and displays the view and the mainframe window. The reason why the application does not display correctly when a different SW parameter is chosen instead of SW_SHOW, is because InitialUpdateFrame CFrameWnd::ActivateFrame() calls ShowWindow during the initialization of the window in the function. This implies that the call to ShowWindow in InitInstance() is redundant and not needed.

The solution

There are two solutions that can be used to solve the flashing problem. The first solution is to make a subclass of the SingleDocumentTemplate and call our derived version of OpenDocument with bMakeVisible = false for the minimized case. This, however, does not solve the case of using SW_MAXMIMIZE. Another solution, which is far more simpler and can be used for any ShowWIndow mode, is to set the application ShowWindow property prior to initializing the window, as shown below:

Collapse | Copy Code
        CSingleDocTemplate * pDocTemplate;
pDocTemplate = new CSingleDocTemplate (
IDR_MAINFRAME,
RUNTIME_CLASS(CMyMFCProgramDoc),
RUNTIME_CLASS(CMainFrame),       // main SDI frame window
RUNTIME_CLASS(CMyMFCProgramView));
AddDocTemplate(pDocTemplate);
// Parse command line for standard shell commands, DDE, file open
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
// Add the following line:
// Set the initial window display to whatever mode you like
this->m_nCmdShow = SW_MAXIMIZE;
// Dispatch commands specified on the command line
if (!ProcessShellCommand(cmdInfo))
return FALSE;
// The following line should be deleted since it is not needed 
// for a SDI application that used MFC The one and only window has
// been initialized, so show and update it.
//m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
return TRUE;

One may ask if the ShowWindow() line in the InitInstance has no purpose, and why Microsoft put that line there in the first place. The answer is, if one decides to construct an SDI application using the MFC application wizard and checks the option not to use MFC, this line is required to show the window. However, Microsoft should have deleted this line if MFC is used. However, since the vast majority of applications initially display ShowWindow with the SW_SHOW parameter, calling ShowWindow twice (the first time in ActivateFrame, as described above) will not influence the display of the application.



]]>
AfxMessageBoxFormatted and MessageBoxFormattedhttp://m.shnenglu.com/Walker/articles/144093.html婕鑰吤?amp;鈥︹?錕?/dc:creator>婕鑰吤?amp;鈥︹?錕?/author>Wed, 13 Apr 2011 01:50:00 GMThttp://m.shnenglu.com/Walker/articles/144093.htmlhttp://m.shnenglu.com/Walker/comments/144093.htmlhttp://m.shnenglu.com/Walker/articles/144093.html#Feedback0http://m.shnenglu.com/Walker/comments/commentRss/144093.htmlhttp://m.shnenglu.com/Walker/services/trackbacks/144093.htmlvoid AfxMessageBoxFormatted(LPCTSTR pFormatString, ...)
{
    va_list vl;
    va_start(vl, pFormatString);<br>
    CString strFormat;
    strFormat.FormatV(pFormatString, vl); // This Line is important!<br>
    // Display message box.
    AfxMessageBox(strFormat);
}

void MessageBoxFormatted(HWND hWnd, LPCTSTR pCaption, LPCTSTR pFormatString, ...)
{
    va_list vl;
    va_start(vl, pFormatString);<br>   
    TCHAR strFormat[1024]; // Must ensure size!<br>

    // Generic version of vsprintf, works for both MBCS and Unicode builds
    _vstprintf(strFormat, pFormatString, vl);<br>
    // Or use following for more secure code
    // _vstprintf_s(strFormat, sizeof(strFormat), pFormatString, vl)<br>
    ::MessageBox(hWnd, strFormat, pCaption,MB_ICONINFORMATION);
}

]]>
鍑芥暟鎸囬拡http://m.shnenglu.com/Walker/articles/144092.html婕鑰吤?amp;鈥︹?錕?/dc:creator>婕鑰吤?amp;鈥︹?錕?/author>Wed, 13 Apr 2011 01:48:00 GMThttp://m.shnenglu.com/Walker/articles/144092.htmlhttp://m.shnenglu.com/Walker/comments/144092.htmlhttp://m.shnenglu.com/Walker/articles/144092.html#Feedback0http://m.shnenglu.com/Walker/comments/commentRss/144092.htmlhttp://m.shnenglu.com/Walker/services/trackbacks/144092.html      鍦ㄧ▼搴忚繍琛屼腑錛屽嚱鏁頒唬鐮佹槸紼嬪簭鐨勭畻娉曟寚浠ら儴鍒嗭紝瀹冧滑鍜屾暟緇勪竴鏍蜂篃鍗犵敤瀛樺偍絀洪棿錛岄兘鏈夌浉搴旂殑鍦板潃銆傚彲浠ヤ嬌鐢ㄦ寚閽堝彉閲忔寚鍚戞暟緇勭殑棣栧湴鍧錛屼篃鍙互浣跨敤鎸囬拡鍙橀噺鎸囧悜鍑芥暟浠g爜鐨勯鍦板潃錛屾寚鍚戝嚱鏁頒唬鐮侀鍦板潃鐨勬寚閽堝彉閲忕О涓哄嚱鏁版寚閽堛?/span>

1錛庡嚱鏁版寚閽堝畾涔?/span>

鍑芥暟綾誨瀷 錛?/font>*鎸囬拡鍙橀噺鍚嶏級(褰㈠弬鍒楄〃)錛?/span>

鍑芥暟綾誨瀷璇存槑鍑芥暟鐨勮繑鍥炵被鍨嬶紝鐢變簬“()”鐨勪紭鍏堢駭楂樹簬“*”,鎵浠ユ寚閽堝彉閲忓悕澶栫殑鎷彿蹇呬笉鍙皯錛屽悗闈㈢殑褰㈠弬鍒楄〃琛ㄧず鎸囬拡鍙橀噺鎸囧悜鐨勫嚱鏁版墍甯︾殑鍙傛暟鍒楄〃銆?/span>

渚嬪錛?/span>

int (*f)(int x);

double (*ptr)(double x);

鍦ㄥ畾涔夊嚱鏁版寚閽堟椂璇鋒敞鎰忥細
   
鍑芥暟鎸囬拡鍜屽畠鎸囧悜鐨勫嚱鏁扮殑鍙傛暟涓暟鍜岀被鍨嬮兘搴旇鏄?/font>鈥?/span>鑷寸殑錛?/span>

鍑芥暟鎸囬拡鐨勭被鍨嬪拰鍑芥暟鐨勮繑鍥炲肩被鍨嬩篃蹇呴』鏄竴鑷寸殑銆?/span>

2錛庡嚱鏁版寚閽堢殑璧嬪?/span>

鍑芥暟鍚嶅拰鏁扮粍鍚嶄竴鏍蜂唬琛ㄤ簡鍑芥暟浠g爜鐨勯鍦板潃錛屽洜姝ゅ湪璧嬪兼椂錛岀洿鎺ュ皢鍑芥暟鎸囬拡鎸囧悜鍑芥暟鍚嶅氨琛屼簡銆?/span>

渚嬪錛?/span>

int func(int x);   /* 澹版槑涓涓嚱鏁?/font> */

int (*f) (int x);    /* 澹版槑涓涓嚱鏁版寚閽?/font> */

f=func;            /* 灝?/font>func鍑芥暟鐨勯鍦板潃璧嬬粰鎸囬拡f */

璧嬪兼椂鍑芥暟func涓嶅甫鎷彿錛屼篃涓嶅甫鍙傛暟錛岀敱浜?/font>func浠h〃鍑芥暟鐨勯鍦板潃錛屽洜姝ょ粡榪囪祴鍊間互鍚庯紝鎸囬拡f灝辨寚鍚戝嚱鏁?/font>func(x)鐨勪唬鐮佺殑棣栧湴鍧銆?/span>

3錛庨氳繃鍑芥暟鎸囬拡璋冪敤鍑芥暟

鍑芥暟鎸囬拡鏄氳繃鍑芥暟鍚嶅強鏈夊叧鍙傛暟榪涜璋冪敤鐨勩?/span>

涓庡叾浠栨寚閽堝彉閲忕浉綾諱技錛屽鏋滄寚閽堝彉閲?/font>pi鏄寚鍚戞煇鏁村瀷鍙橀噺i鐨勬寚閽堬紝鍒?/font>*p絳変簬瀹冩墍鎸囩殑鍙橀噺i錛涘鏋?/font>pf鏄寚鍚戞煇嫻偣鍨嬪彉閲?/font>f鐨勬寚閽堬紝鍒?/font>*pf灝辯瓑浠蜂簬瀹冩墍鎸囩殑鍙橀噺f銆傚悓鏍峰湴錛?/font>*f鏄寚鍚戝嚱鏁?/font>func(x)鐨勬寚閽堬紝鍒?/font>*f灝變唬琛ㄥ畠鎵鎸囧悜鐨勫嚱鏁?/font>func銆傛墍浠ュ湪鎵ц浜?/font>f=func;涔嬪悗錛?/font>(*f)鍜?/font>func浠h〃鍚屼竴鍑芥暟銆?/span>

鐢變簬鍑芥暟鎸囬拡鎸囧悜瀛樺偍鍖轟腑鐨勬煇涓嚱鏁幫紝鍥犳鍙互閫氳繃鍑芥暟鎸囬拡璋冪敤鐩稿簲鐨勫嚱鏁般傜幇鍦ㄦ垜浠氨璁ㄨ濡備綍鐢ㄥ嚱鏁版寚閽堣皟鐢ㄥ嚱鏁幫紝瀹冨簲鎵ц涓嬮潰涓夋錛?/span>

棣栧厛錛岃璇存槑鍑芥暟鎸囬拡鍙橀噺銆?/span>

渚嬪錛?/font>int (*f)(int x);

鍏舵錛岃瀵瑰嚱鏁版寚閽堝彉閲忚祴鍊箋?/span>

渚嬪錛?/font> f=func;    (func(x)蹇呴』鍏堣鏈夊畾涔?/font>)

鏈鍚庯紝瑕佺敤 (*鎸囬拡鍙橀噺)(鍙傛暟琛?/font>);璋冪敤鍑芥暟銆?/span>

渚嬪錛?/font>    (*f)(x);(x蹇呴』鍏堣祴鍊?/font>)



]]>
What are TCHAR, WCHAR, LPSTR, LPWSTR, LPCTSTR etc?http://m.shnenglu.com/Walker/articles/144091.html婕鑰吤?amp;鈥︹?錕?/dc:creator>婕鑰吤?amp;鈥︹?錕?/author>Wed, 13 Apr 2011 01:47:00 GMThttp://m.shnenglu.com/Walker/articles/144091.htmlhttp://m.shnenglu.com/Walker/comments/144091.htmlhttp://m.shnenglu.com/Walker/articles/144091.html#Feedback0http://m.shnenglu.com/Walker/comments/commentRss/144091.htmlhttp://m.shnenglu.com/Walker/services/trackbacks/144091.htmlVC 瀛楃涓茬浉鍏沖畯 _T銆?/span>TEXT,_TEXT銆?/span>L 鐨勪綔鐢?/span>

涓銆?/span> 鍦ㄥ瓧絎︿覆鍓嶅姞涓涓?/span>L浣滅敤:

   濡?/span> L"鎴戠殑瀛楃涓?/span>"    琛ㄧず灝?/span>ANSI瀛楃涓茶漿鎹㈡垚unicode鐨勫瓧絎︿覆錛屽氨鏄瘡涓瓧絎﹀崰鐢ㄤ袱涓瓧鑺傘?/span>

 strlen("asd")   =   3;  

 strlen(L"asd")   =   6;

 

浜屻?/span> _T瀹忓彲浠ユ妸涓涓紩鍙峰紩璧鋒潵鐨勫瓧絎︿覆錛屾牴鎹綘鐨勭幆澧冭緗紝浣垮緱緙栬瘧鍣ㄤ細鏍規嵁緙栬瘧鐩爣鐜閫夋嫨鍚堥傜殑錛?/span>Unicode榪樻槸ANSI錛夊瓧絎﹀鐞嗘柟寮?/span>

   濡傛灉浣犲畾涔変簡UNICODE錛岄偅涔?/span>_T瀹忎細鎶婂瓧絎︿覆鍓嶉潰鍔犱竴涓?/span>L銆傝繖鏃?/span> _T("ABCD") 鐩稿綋浜?/span> L"ABCD" 錛岃繖鏄瀛楃涓層?/span>

   濡傛灉娌℃湁瀹氫箟錛岄偅涔?/span>_T瀹忎笉浼氬湪瀛楃涓插墠闈㈠姞閭d釜L錛?/span>_T("ABCD") 灝辯瓑浠蜂簬 "ABCD"

 

涓夈?/span>TEXT,_TEXT 鍜?/span>_T 涓鏍風殑

 

濡備笅闈笁璇彞錛?/span>  

 TCHAR   szStr1[]   =   TEXT("str1");  

 char   szStr2[]   =   "str2";  

 WCHAR   szStr3[]   =   L("str3");  

 閭d箞絎竴鍙ヨ瘽鍦ㄥ畾涔変簡UNICODE鏃朵細瑙i噴涓虹涓夊彞璇濓紝娌℃湁瀹氫箟鏃跺氨絳変簬絎簩鍙ヨ瘽銆?/span> 

 浣嗕簩鍙ヨ瘽鏃犺鏄惁瀹氫箟浜?/span>UNICODE閮芥槸鐢熸垚涓涓?/span>ANSI瀛楃涓詫紝鑰岀涓夊彞璇濇繪槸鐢熸垚UNICODE瀛楃涓層?/span>  

 涓轟簡紼嬪簭鐨勫彲縐繪鎬э紝寤鴻閮界敤絎竴縐嶈〃紺烘柟娉曘?/span>  

 浣嗗湪鏌愪簺鎯呭喌涓嬶紝鏌愪釜瀛楃蹇呴』涓?/span>ANSI鎴?/span>UNICODE錛岄偅灝辯敤鍚庝袱縐嶆柟娉曘?/span>

 

 

Many C++ Windows programmers get confused over what bizarre identifiers like TCHAR, LPCTSTR are. Here, in brief, I would try to clear out the fog.

In general, a character can be 1 byte or 2 bytes. Lets say 1-byte character is ANSI, using which English characters are represented. And lets say 2-byte character is Unicode, which can represent ALL languages in the world.

VC++ support
char and wchar_t as native datatypes for ANSI and Unicode characters respectively.

What if you want your C/C++ program to be Character-mode independent?
That means, instead of replacing:

Collapse | Copy Code

char cResponse; // 'Y' or 'N'
char sUsername[64];
// str* functions

with

Collapse | Copy Code

wchar_t cResponse; // 'Y' or 'N'
wchar_t sUsername[64];
// wcs* functions

You can simply code it:

Collapse | Copy Code

#include<TCHAR.H> // Implicit or explicit include
TCHAR cResponse; // 'Y' or 'N'
TCHAR sUsername[64];
// _tcs* functions

Thus, when your project is being compiled as Unicode, the TCHAR would translate to wchar_t. If it is being compiled as ANSI/MBCS, it would translated to char. Likewise, instead of using strcpy, strlen, strcat (including the secure versions suffixed with _s); or wcscpy, wcslen, wcscat (including secure), you can simply use _tcscpy, _tcslen, _tcscat functions.

When you need to express hard-coded string, you can use:

Collapse | Copy Code

"ANSI String"; // ANSI
L"Unicode String"; // Unicode

_T("Either string, depending on compilation"); // ANSI or Unicode
// or use TEXT macro, if you need more readability.

The non-prefixed string is ANSI string, the L prefixed string is Unicode, and string specified in _T or TEXT would be either, depending on compilation.


String classes, like MFC/ATL's
CString implement two version using macro. There are two classes named CStringA for ANSI, CStringW for Unicode. When you use CString (which is a macro/typedef), it translates to either of two classes.


Okay. The TCHAR type-definition was for a single character. You can definitely declare an array of TCHAR.
What if you want to express a character-pointer, or a const-character-pointer - Which one of the following?

Collapse | Copy Code

// ANSI characters
foo_ansi(char*);
foo_ansi(const char*);
/*const*/ char* pString;

// Unicode/wide-string
foo_uni(WCHAR*); // or wchar_t*
foo_uni(const WCHAR*);
/*const*/ WCHAR* pString;

// Independent
foo_char(TCHAR*);
foo_char(const TCHAR*);
/*const*/ TCHAR* pString;

After reading about TCHAR stuff, you'd definitely select the last one as your choice. But here is better alternative. Before that, note that TCHAR.H header file declares only TCHAR datatype and for the following stuff, you need to include Windows.h (defined in WinNT.h).

NOTE: If your project implicitly or explicitly includes
Windows.h, you need not to include TCHAR.H

  • char* replacement: LPSTR
  • const char* replacement: LPCSTR
  • WCHAR* replacement: LPWSTR
  • const WCHAR* replacement: LPCWSTR (C before W, since const is before WCHAR)
  • TCHAR* replacement: LPTSTR
  • const TCHAR* replacement: LPCTSTR

Now, I hope, you understand the following signatures :

Collapse | Copy Code

BOOL SetCurrentDirectory( LPCTSTR lpPathName );
DWORD GetCurrentDirectory(DWORD nBufferLength,LPTSTR lpBuffer);


Continuing. You must have seen some functions/methods asking you to pass number of characters, or returning the number of characters. Well, like GetCurrentDirectory, you need to pass number of characters, and not number of bytes. For example::

Collapse | Copy Code

TCHAR sCurrentDir[255];

// Pass 255 and not 255*2
GetCurrentDirectory(sCurrentDir, 255);

On the other side, if you need to allocate number or characters, you must allocate proper number of bytes. In C++, you can simply use new:

Collapse | Copy Code

LPTSTR pBuffer; // TCHAR*

pBuffer = new TCHAR[128]; // Allocates 128 or 256 BYTES, depending on compilation.

But if you use memory allocation functions like malloc, LocalAlloc, GlobalAlloc etc; you must specify the number of bytes!

Collapse | Copy Code

pBuffer = (TCHAR*) malloc (128 * sizeof(TCHAR) );

Typecasting the return value is required, as you know. The expression in malloc's argument ensures that it allocates desired number of bytes - and makes up room for desired number of characters.

1



]]>
錛堣漿錛塁銆丆++ 鏃墮棿 http://m.shnenglu.com/Walker/articles/81194.html婕鑰吤?amp;鈥︹?錕?/dc:creator>婕鑰吤?amp;鈥︹?錕?/author>Mon, 27 Apr 2009 03:11:00 GMThttp://m.shnenglu.com/Walker/articles/81194.htmlhttp://m.shnenglu.com/Walker/comments/81194.htmlhttp://m.shnenglu.com/Walker/articles/81194.html#Feedback0http://m.shnenglu.com/Walker/comments/commentRss/81194.htmlhttp://m.shnenglu.com/Walker/services/trackbacks/81194.htmlC++ 鏃墮棿

      鏈枃浠庝粙緇嶅熀紜姒傚康鍏ユ墜錛屾帰璁ㄤ簡鍦–/C++涓鏃ユ湡鍜屾椂闂存搷浣滄墍鐢ㄥ埌鐨勬暟鎹粨鏋勫拰鍑芥暟錛屽茍瀵硅鏃躲佹椂闂寸殑鑾峰彇銆佹椂闂寸殑璁$畻鍜屾樉紺烘牸寮忕瓑鏂歸潰榪涜浜嗛槓榪般傛湰鏂囪繕閫氳繃澶ч噺鐨勫疄渚嬪悜浣犲睍紺轟簡time.h澶存枃浠朵腑澹版槑鐨勫悇縐嶅嚱鏁板拰鏁版嵁緇撴瀯鐨勮緇嗕嬌鐢ㄦ柟娉曘?nbsp; 

鍏抽敭瀛楋細UTC錛堜笘鐣屾爣鍑嗘椂闂達級錛孋alendar Time錛堟棩鍘嗘椂闂達級錛宔poch錛堟椂闂寸偣錛夛紝clock tick錛堟椂閽熻鏃跺崟鍏冿級  

1錛庢蹇?nbsp; 
      鍦–/C++涓紝瀵瑰瓧絎︿覆鐨勬搷浣滄湁寰堝鍊煎緱娉ㄦ剰鐨勯棶棰橈紝鍚屾牱錛孋/C++瀵規椂闂寸殑鎿嶄綔涔熸湁璁稿鍊煎緱澶у娉ㄦ剰鐨勫湴鏂廣傛渶榪戯紝鍦ㄦ妧鏈兢涓湁寰堝緗戝弸涔熷嬈¢棶鍒?榪嘋++璇█涓鏃墮棿鐨勬搷浣溿佽幏鍙栧拰鏄劇ず絳夌瓑鐨勯棶棰樸備笅闈紝鍦ㄨ繖綃囨枃绔犱腑錛岀瑪鑰呭皢涓昏浠嬬粛鍦–/C++涓椂闂村拰鏃ユ湡鐨勪嬌鐢ㄦ柟娉?  

閫氳繃瀛︿範璁稿C/C++搴擄紝浣犲彲浠ユ湁寰堝鎿嶄綔銆佷嬌鐢ㄦ椂闂寸殑鏂規硶銆備絾鍦ㄨ繖涔嬪墠浣犻渶瑕佷簡瑙d竴浜?#8220;鏃墮棿”鍜?#8220;鏃ユ湡”鐨勬蹇碉紝涓昏鏈変互涓嬪嚑涓細  

Coordinated Universal Time錛圲TC錛夛細鍗忚皟涓栫晫鏃訛紝鍙堢О涓轟笘鐣屾爣鍑嗘椂闂達紝涔熷氨鏄ぇ瀹舵墍鐔熺煡鐨勬牸鏋楀▉娌繪爣鍑嗘椂闂達紙Greenwich Mean Time錛孏MT錛夈傛瘮濡傦紝涓浗鍐呭湴鐨勬椂闂翠笌UTC鐨勬椂宸負+8錛屼篃灝辨槸UTC+8銆傜編鍥芥槸UTC-5銆?nbsp; 

Calendar Time錛氭棩鍘嗘椂闂達紝鏄敤“浠庝竴涓爣鍑嗘椂闂寸偣鍒版鏃剁殑鏃墮棿緇忚繃鐨勭鏁?#8221;鏉ヨ〃紺虹殑鏃墮棿銆傝繖涓爣鍑嗘椂闂寸偣瀵逛笉鍚岀殑緙栬瘧鍣ㄦ潵璇翠細鏈夋墍涓嶅悓錛屼絾瀵逛竴涓紪璇戠郴緇熸潵 璇達紝榪欎釜鏍囧噯鏃墮棿鐐規槸涓嶅彉鐨勶紝璇ョ紪璇戠郴緇熶腑鐨勬椂闂村搴旂殑鏃ュ巻鏃墮棿閮介氳繃璇ユ爣鍑嗘椂闂寸偣鏉ヨ 閲忥紝鎵浠ュ彲浠ヨ鏃ュ巻鏃墮棿鏄?#8220;鐩稿鏃墮棿”錛屼絾鏄棤璁轟綘鍦ㄥ摢涓涓椂鍖猴紝 鍦ㄥ悓涓鏃跺埢瀵瑰悓涓涓爣鍑嗘椂闂寸偣鏉ヨ錛屾棩鍘嗘椂闂撮兘鏄竴鏍風殑銆?nbsp; 

epoch錛?nbsp;   鏃墮棿鐐廣傛椂闂寸偣鍦ㄦ爣鍑咰/C++涓槸涓涓暣鏁幫紝瀹冪敤姝ゆ椂鐨勬椂闂村拰鏍囧噯鏃墮棿鐐圭浉宸殑縐掓暟錛堝嵆鏃ュ巻鏃墮棿錛夋潵琛ㄧず銆?nbsp; 

clock tick錛氭椂閽熻鏃跺崟鍏冿紙鑰屼笉鎶婂畠鍙仛鏃墮挓婊寸瓟嬈℃暟錛夛紝涓涓椂閽熻鏃跺崟鍏冪殑鏃墮棿闀跨煭鏄敱CPU鎺у埗鐨勩備竴涓猚lock tick涓嶆槸CPU鐨勪竴涓椂閽熷懆鏈燂紝鑰屾槸C/C++鐨勪竴涓熀鏈鏃跺崟浣嶃?nbsp; 

鎴戜滑鍙互浣跨敤ANSI鏍囧噯搴撲腑鐨則ime.h澶存枃浠躲傝繖涓ご鏂囦歡涓畾涔夌殑鏃墮棿鍜屾棩鏈熸墍浣跨敤鐨勬柟娉曪紝鏃犺鏄湪緇撴瀯瀹氫箟錛岃繕鏄懡鍚嶏紝閮藉叿鏈夋槑鏄劇殑C璇█椋庢牸銆備笅闈紝鎴戝皢璇存槑鍦–/C++涓庢牱浣跨敤鏃ユ湡鐨勬椂闂村姛鑳姐?nbsp; 

2錛?璁℃椂  

C/C++涓殑璁℃椂鍑芥暟鏄痗lock()錛岃屼笌鍏剁浉鍏崇殑鏁版嵁綾誨瀷鏄痗lock_t銆傚湪MSDN涓紝鏌ュ緱瀵筩lock鍑芥暟瀹氫箟濡備笅錛?nbsp; 

clock_t clock( void );  

     榪?涓嚱鏁拌繑鍥炰粠“寮鍚繖涓▼搴忚繘紼?#8221;鍒?#8220;紼嬪簭涓皟鐢╟lock()鍑芥暟”鏃朵箣闂寸殑CPU鏃墮挓璁℃椂鍗曞厓錛坈lock tick錛夋暟錛屽湪MSDN涓О涔嬩負鎸傞挓鏃墮棿錛坵al-clock錛夈傚叾涓璫lock_t鏄敤鏉ヤ繚瀛樻椂闂寸殑鏁版嵁綾誨瀷錛屽湪time.h鏂囦歡涓紝鎴戜滑鍙互鎵懼埌瀵?瀹冪殑瀹氫箟錛?nbsp; 

#ifndef _CLOCK_T_DEFINED  
typedef long clock_t;  
#define _CLOCK_T_DEFINED  
#endif  

寰堟槑鏄撅紝clock_t鏄竴涓暱鏁村艦鏁般傚湪time.h鏂囦歡涓紝榪樺畾涔変簡涓涓父閲廋LOCKS_PER_SEC錛屽畠鐢ㄦ潵琛ㄧず涓縐掗挓浼氭湁澶氬皯涓椂閽熻鏃跺崟鍏冿紝鍏跺畾涔夊涓嬶細  

#define CLOCKS_PER_SEC ((clock_t)1000)  

鍙互鐪嬪埌姣忚繃鍗冨垎涔嬩竴縐掞紙1姣錛夛紝璋冪敤clock錛堬級鍑芥暟榪斿洖鐨勫煎氨鍔?銆備笅闈婦涓緥瀛愶紝浣犲彲浠ヤ嬌鐢ㄥ叕寮廲lock()/CLOCKS_PER_SEC鏉ヨ綆椾竴涓繘紼嬭嚜韜殑榪愯鏃墮棿錛?nbsp; 

void elapsed_time()  
{  
printf("Elapsed time:%u secs.\n",clock()/CLOCKS_PER_SEC);  
}  

褰撶劧錛屼綘涔熷彲浠ョ敤clock鍑芥暟鏉ヨ綆椾綘鐨勬満鍣ㄨ繍琛屼竴涓驚鐜垨鑰呭鐞嗗叾瀹冧簨浠跺埌搴曡姳浜嗗灝戞椂闂達細  

#include “stdio.h”  
#include “stdlib.h”  
#include “time.h”  

int main( void )  
{  
long i = 10000000L;  
clock_t start, finish;  
double duration;  
/* 嫻嬮噺涓涓簨浠舵寔緇殑鏃墮棿*/  
printf( "Time to do %ld empty loops is ", i );  
start = clock();  
while( i-- ) ;  
finish = clock();  
duration = (double)(finish - start) / CLOCKS_PER_SEC;  
printf( "%f seconds\n", duration );  
system("pause");  
}  

鍦ㄧ瑪鑰呯殑鏈哄櫒涓婏紝榪愯緇撴灉濡備笅錛?nbsp; 

Time to do 10000000 empty loops is 0.03000 seconds  

     涓婇潰鎴戜滑鐪嬪埌鏃墮挓璁℃椂鍗曞厓鐨勯暱搴︿負1姣錛岄偅涔堣鏃剁殑綺懼害涔熶負1姣錛岄偅涔堟垜浠彲涓嶅彲浠ラ氳繃鏀瑰彉CLOCKS_PER_SEC鐨勫畾涔夛紝閫氳繃鎶婂畠瀹氫箟鐨勫ぇ涓浜涳紝浠庤屼嬌璁℃椂綺懼害鏇撮珮鍛紵閫氳繃灝濊瘯錛屼綘浼氬彂鐜拌繖鏍鋒槸涓嶈鐨勩傚湪鏍囧噯C/C++涓紝鏈灝忕殑璁℃椂鍗曚綅鏄竴姣銆?nbsp; 

3錛庝笌鏃ユ湡鍜屾椂闂寸浉鍏崇殑鏁版嵁緇撴瀯  

鍦ㄦ爣鍑咰/C++涓紝鎴戜滑鍙氳繃tm緇撴瀯鏉ヨ幏寰楁棩鏈熷拰鏃墮棿錛宼m緇撴瀯鍦╰ime.h涓殑瀹氫箟濡備笅錛?nbsp; 

#ifndef _TM_DEFINED  
struct tm {  
int tm_sec; /* 縐?– 鍙栧煎尯闂翠負[0,59] */  
int tm_min; /* 鍒?- 鍙栧煎尯闂翠負[0,59] */  
int tm_hour; /* 鏃?- 鍙栧煎尯闂翠負[0,23] */  
int tm_mday; /* 涓涓湀涓殑鏃ユ湡 - 鍙栧煎尯闂翠負[1,31] */  
int tm_mon; /* 鏈堜喚錛堜粠涓鏈堝紑濮嬶紝0浠h〃涓鏈堬級 - 鍙栧煎尯闂翠負[0,11] */  
int tm_year; /* 騫翠喚錛屽叾鍊肩瓑浜庡疄闄呭勾浠藉噺鍘?900 */  
int tm_wday; /* 鏄熸湡 – 鍙栧煎尯闂翠負[0,6]錛屽叾涓?浠h〃鏄熸湡澶╋紝1浠h〃鏄熸湡涓錛屼互姝ょ被鎺?*/  
int tm_yday; /* 浠庢瘡騫寸殑1鏈?鏃ュ紑濮嬬殑澶╂暟 – 鍙栧煎尯闂翠負[0,365]錛屽叾涓?浠h〃1鏈?鏃ワ紝1浠h〃1鏈?鏃ワ紝浠ユ綾繪帹 */  
int tm_isdst; /* 澶忎護鏃舵爣璇嗙錛屽疄琛屽浠ゆ椂鐨勬椂鍊欙紝tm_isdst涓烘銆備笉瀹炶澶忎護鏃剁殑榪涘欙紝tm_isdst涓?錛涗笉浜嗚В鎯呭喌鏃訛紝tm_isdst()涓鴻礋銆?/  
};  
#define _TM_DEFINED  
#endif  

ANSI C鏍囧噯縐頒嬌鐢╰m緇撴瀯鐨勮繖縐嶆椂闂磋〃紺轟負鍒嗚В鏃墮棿(broken-down time)銆?nbsp; 

      鑰屾棩鍘嗘椂闂達紙Calendar Time錛夋槸閫氳繃time_t鏁版嵁綾誨瀷鏉ヨ〃紺虹殑錛岀敤time_t琛ㄧず鐨勬椂闂達紙鏃ュ巻鏃墮棿錛夋槸浠庝竴涓椂闂寸偣錛堜緥濡傦細1970騫?鏈?鏃?鏃?鍒?縐掞級鍒版鏃剁殑縐掓暟銆傚湪time.h涓紝鎴戜滑涔熷彲浠ョ湅鍒皌ime_t鏄竴涓暱鏁村瀷鏁幫細  

#ifndef _TIME_T_DEFINED  
typedef long time_t; /* 鏃墮棿鍊?*/  
#define _TIME_T_DEFINED /* 閬垮厤閲嶅瀹氫箟 time_t */  
#endif  

      澶?瀹跺彲鑳戒細浜х敓鐤戦棶錛氭棦鐒秚ime_t瀹為檯涓婃槸闀挎暣鍨嬶紝鍒版湭鏉ョ殑鏌愪竴澶╋紝浠庝竴涓椂闂寸偣錛堜竴鑸槸1970騫?鏈?鏃?鏃?鍒?縐掞級鍒伴偅鏃剁殑縐掓暟錛堝嵆鏃ュ巻鏃墮棿錛?瓚呭嚭浜嗛暱鏁村艦鎵鑳借〃紺虹殑鏁扮殑鑼冨洿鎬庝箞鍔烇紵瀵箃ime_t鏁版嵁綾誨瀷鐨勫兼潵璇達紝瀹冩墍琛ㄧず鐨勬椂闂翠笉鑳芥櫄浜?038騫?鏈?8鏃?9鏃?4鍒?7縐掋備負浜嗚兘澶熻〃紺?鏇翠箙榪滅殑鏃墮棿錛屼竴浜涚紪璇戝櫒鍘傚晢寮曞叆浜?4浣嶇敋鑷蟲洿闀跨殑鏁村艦鏁版潵淇濆瓨鏃ュ巻鏃墮棿銆傛瘮濡傚井杞湪Visual C++涓噰鐢ㄤ簡__time64_t鏁版嵁綾誨瀷鏉ヤ繚瀛樻棩鍘嗘椂闂達紝騫墮氳繃_time64()鍑芥暟鏉ヨ幏寰楁棩鍘嗘椂闂達紙鑰屼笉鏄氳繃浣跨敤32浣嶅瓧鐨則ime()鍑?鏁幫級錛岃繖鏍峰氨鍙互閫氳繃璇ユ暟鎹被鍨嬩繚瀛?001騫?鏈?鏃?鏃?鍒?縐掞紙涓嶅寘鎷鏃墮棿鐐癸級涔嬪墠鐨勬椂闂淬?nbsp; 

鍦╰ime.h澶存枃浠朵腑錛屾垜浠繕鍙互鐪嬪埌涓浜涘嚱鏁幫紝瀹冧滑閮芥槸浠ime_t涓哄弬鏁扮被鍨嬫垨榪斿洖鍊肩被鍨嬬殑鍑芥暟錛?nbsp; 

double difftime(time_t time1, time_t time0);  
time_t mktime(struct tm * timeptr);  
time_t time(time_t * timer);  
char * asctime(const struct tm * timeptr);  
char * ctime(const time_t *timer);  

姝ゅ錛宼ime.h榪樻彁渚涗簡涓ょ涓嶅悓鐨勫嚱鏁板皢鏃ュ巻鏃墮棿錛堜竴涓敤time_t琛ㄧず鐨勬暣鏁幫級杞崲涓烘垜浠鉤鏃剁湅鍒扮殑鎶婂勾鏈堟棩鏃跺垎縐掑垎寮鏄劇ず鐨勬椂闂存牸寮弔m錛?nbsp; 

struct tm * gmtime(const time_t *timer);  
struct tm * localtime(const time_t * timer);  

      閫?榪囨煡闃匨SDN錛屾垜浠彲浠ョ煡閬揗icrosoft C/C++ 7.0涓椂闂寸偣鐨勫鹼紙time_t瀵硅薄鐨勫鹼級鏄粠1899騫?2鏈?1鏃?鏃?鍒?縐掑埌璇ユ椂闂寸偣鎵緇忚繃鐨勭鏁幫紝鑰屽叾瀹冨悇縐嶇増鏈殑Microsoft C/C++鍜屾墍鏈変笉鍚岀増鏈殑Visual C++閮芥槸璁$畻鐨勪粠1970騫?鏈?鏃?鏃?鍒?縐掑埌璇ユ椂闂寸偣鎵緇忚繃鐨勭鏁般?nbsp; 

4錛庝笌鏃ユ湡鍜屾椂闂寸浉鍏崇殑鍑芥暟鍙婂簲鐢?nbsp; 
      鍦ㄦ湰鑺傦紝鎴戝皢鍚戝ぇ瀹跺睍紺烘庢牱鍒╃敤time.h涓0鏄庣殑鍑芥暟瀵規椂闂磋繘琛屾搷浣溿傝繖浜涙搷浣滃寘鎷彇褰撳墠鏃墮棿銆佽綆楁椂闂撮棿闅斻佷互涓嶅悓鐨勫艦寮忔樉紺烘椂闂寸瓑鍐呭銆?nbsp; 

4.1 鑾峰緱鏃ュ巻鏃墮棿  

       鎴戜滑鍙互閫氳繃time()鍑芥暟鏉ヨ幏寰楁棩鍘嗘椂闂達紙Calendar Time錛夛紝鍏跺師鍨嬩負錛?br>time_t time(time_t * timer);  

       濡?鏋滀綘宸茬粡澹版槑浜嗗弬鏁皌imer錛屼綘鍙互浠庡弬鏁皌imer榪斿洖鐜板湪鐨勬棩鍘嗘椂闂達紝鍚屾椂涔熷彲浠ラ氳繃榪斿洖鍊艱繑鍥炵幇鍦ㄧ殑鏃ュ巻鏃墮棿錛屽嵆浠庝竴涓椂闂寸偣錛堜緥濡傦細1970騫?1鏈?鏃?鏃?鍒?縐掞級鍒扮幇鍦ㄦ鏃剁殑縐掓暟銆傚鏋滃弬鏁頒負絀猴紙NUL錛夛紝鍑芥暟灝嗗彧閫氳繃榪斿洖鍊艱繑鍥炵幇鍦ㄧ殑鏃ュ巻鏃墮棿錛屾瘮濡備笅闈㈣繖涓緥瀛愮敤鏉ユ樉紺哄綋鍓嶇殑鏃ュ巻鏃墮棿錛?  

#include "time.h"  
#include "stdio.h"  
int main(void)  
{  
struct tm *ptr;  
time_t lt;  
lt =time(NUL);  
printf("The Calendar Time now is %d\n",lt);  
return 0;  
}  

榪愯鐨勭粨鏋滀笌褰撴椂鐨勬椂闂存湁鍏籌紝鎴戝綋鏃惰繍琛岀殑緇撴灉鏄細  

The Calendar Time now is 1122707619  

鍏朵腑1122707619灝辨槸鎴戣繍琛岀▼搴忔椂鐨勬棩鍘嗘椂闂淬傚嵆浠?970騫?鏈?鏃?鏃?鍒?縐掑埌姝ゆ椂鐨勭鏁般?nbsp; 

4.2 鑾峰緱鏃ユ湡鍜屾椂闂?nbsp; 

      榪欓噷璇寸殑鏃ユ湡鍜屾椂闂村氨鏄垜浠鉤鏃舵墍璇寸殑騫淬佹湀銆佹棩銆佹椂銆佸垎銆佺絳変俊鎭備粠絎?鑺傛垜浠凡緇忕煡閬撹繖浜涗俊鎭兘淇濆瓨鍦ㄤ竴涓悕涓簍m鐨勭粨鏋勪綋涓紝閭d箞濡備綍灝嗕竴涓棩鍘嗘椂闂翠繚瀛樹負涓涓猼m緇撴瀯鐨勫璞″憿錛?nbsp; 

鍏朵腑鍙互浣跨敤鐨勫嚱鏁版槸gmtime()鍜宭ocaltime()錛岃繖涓や釜鍑芥暟鐨勫師鍨嬩負錛?nbsp; 

struct tm * gmtime(const time_t *timer);  
struct tm * localtime(const time_t * timer);  

       鍏?涓璯mtime()鍑芥暟鏄皢鏃ュ巻鏃墮棿杞寲涓轟笘鐣屾爣鍑嗘椂闂達紙鍗蟲牸鏋楀凹娌繪椂闂達級錛屽茍榪斿洖涓涓猼m緇撴瀯浣撴潵淇濆瓨榪欎釜鏃墮棿錛岃宭ocaltime()鍑芥暟鏄皢鏃ュ巻 鏃墮棿杞寲涓烘湰鍦版椂闂淬傛瘮濡傜幇鍦ㄧ敤gmtime()鍑芥暟鑾峰緱鐨勪笘鐣屾爣鍑嗘椂闂存槸2005騫?鏈?0鏃?鐐?8鍒?0縐掞紝閭d箞鎴戠敤localtime()鍑芥暟鍦?涓浗鍦板尯鑾峰緱鐨勬湰鍦版椂闂翠細姣斾笘鐣屾爣鍑嗘椂闂存櫄8涓皬鏃訛紝鍗?005騫?鏈?0鏃?5鐐?8鍒?0縐掋備笅闈㈡槸涓緥瀛愶細  

#include "time.h"  
#include "stdio.h"  
int main(void)  
{  
struct tm *local;  
time_t t;  
t=time(NUL);  
local=localtime(&t);  
printf("Local hour is: %d\n",local->tm_hour);  
local=gmtime(&t);  
printf("UTC hour is: %d\n",local->tm_hour);  
return 0;  
}  

榪愯緇撴灉鏄細  

Local hour is: 15  
UTC hour is: 7  

4.3 鍥哄畾鐨勬椂闂存牸寮?nbsp; 

      鎴戜滑鍙互閫氳繃asctime()鍑芥暟鍜宑time()鍑芥暟灝嗘椂闂翠互鍥哄畾鐨勬牸寮忔樉紺哄嚭鏉ワ紝涓よ呯殑榪斿洖鍊奸兘鏄痗har*鍨嬬殑瀛楃涓層傝繑鍥炵殑鏃墮棿鏍煎紡涓猴細  

鏄熸湡鍑?鏈堜喚 鏃ユ湡 鏃?鍒?縐?騫碶n\0  
渚嬪錛歐ed Jan 02 02:03:55 1980\n\0  

鍏朵腑\n鏄竴涓崲琛岀錛孿0鏄竴涓┖瀛楃錛岃〃紺哄瓧絎︿覆緇撴潫銆備笅闈㈡槸涓や釜鍑芥暟鐨勫師鍨嬶細  

char * asctime(const struct tm * timeptr);  
char * ctime(const time_t *timer);  

      鍏?涓璦sctime()鍑芥暟鏄氳繃tm緇撴瀯鏉ョ敓鎴愬叿鏈夊浐瀹氭牸寮忕殑淇濆瓨鏃墮棿淇℃伅鐨勫瓧絎︿覆錛岃宑time()鏄氳繃鏃ュ巻鏃墮棿鏉ョ敓鎴愭椂闂村瓧絎︿覆銆傝繖鏍風殑璇濓紝 asctime錛堬級鍑芥暟鍙槸鎶妕m緇撴瀯瀵硅薄涓殑鍚勪釜鍩熷~鍒版椂闂村瓧絎︿覆鐨勭浉搴斾綅緗氨琛屼簡錛岃宑time錛堬級鍑芥暟闇瑕佸厛鍙傜収鏈湴鐨勬椂闂磋緗紝鎶婃棩鍘嗘椂闂磋漿鍖栦負 鏈湴鏃墮棿錛岀劧鍚庡啀鐢熸垚鏍煎紡鍖栧悗鐨勫瓧絎︿覆銆傚湪涓嬮潰錛屽鏋渢鏄竴涓潪絀虹殑time_t鍙橀噺鐨勮瘽錛岄偅涔堬細  

printf(ctime(&t));  

絳変環浜庯細  

struct tm *ptr;  
ptr=localtime(&t);  
printf(asctime(ptr));  

閭d箞錛屼笅闈㈣繖涓▼搴忕殑涓ゆ潯printf璇彞杈撳嚭鐨勭粨鏋滃氨鏄笉鍚岀殑浜嗭紙闄ら潪浣犲皢鏈湴鏃跺尯璁句負涓栫晫鏍囧噯鏃墮棿鎵鍦ㄧ殑鏃跺尯錛夛細  

#include "time.h"  
#include "stdio.h"  
int main(void)  
{  
struct tm *ptr;  
time_t lt;  
lt =time(NUL);  
ptr=gmtime(<);  
printf(asctime(ptr));  
printf(ctime(<));  
return 0;  
}  

榪愯緇撴灉錛?nbsp; 

Sat Jul 30 08:43:03 2005  
Sat Jul 30 16:43:03 2005  

4.4 鑷畾涔夋椂闂存牸寮?nbsp; 

鎴戜滑鍙互浣跨敤strftime錛堬級鍑芥暟灝嗘椂闂存牸寮忓寲涓烘垜浠兂瑕佺殑鏍煎紡銆傚畠鐨勫師鍨嬪涓嬶細  

size_t strftime(  
char *strDest,  
size_t maxsize,  
const char *format,  
const struct tm *timeptr  
);  
      鎴戜滑鍙互鏍規嵁format鎸囧悜瀛楃涓蹭腑鏍煎紡鍛戒護鎶妕imeptr涓繚瀛樼殑鏃墮棿淇℃伅鏀懼湪strDest鎸囧悜鐨勫瓧絎︿覆涓紝鏈澶氬悜strDest涓瓨鏀緈axsize涓瓧絎︺傝鍑芥暟榪斿洖鍚憇trDest鎸囧悜鐨勫瓧絎︿覆涓斁緗殑瀛楃鏁般?nbsp; 

      鍑?鏁皊trftime()鐨勬搷浣滄湁浜涚被浼間簬sprintf()錛氳瘑鍒互鐧懼垎鍙?%)寮濮嬬殑鏍煎紡鍛戒護闆嗗悎錛屾牸寮忓寲杈撳嚭緇撴灉鏀懼湪涓涓瓧絎︿覆涓傛牸寮忓寲鍛戒護璇存槑涓?strDest涓悇縐嶆棩鏈熷拰鏃墮棿淇℃伅鐨勭‘鍒囪〃紺烘柟娉曘傛牸寮忎覆涓殑鍏朵粬瀛楃鍘熸牱鏀捐繘涓蹭腑銆傛牸寮忓懡浠ゅ垪鍦ㄤ笅闈紝瀹冧滑鏄尯鍒嗗ぇ灝忓啓鐨勩?nbsp; 

%a 鏄熸湡鍑犵殑綆鍐?nbsp; 
%A 鏄熸湡鍑犵殑鍏ㄧО  
%b 鏈堝垎鐨勭畝鍐?nbsp; 
%B 鏈堜喚鐨勫叏縐?nbsp; 
%c 鏍囧噯鐨勬棩鏈熺殑鏃墮棿涓?nbsp; 
%C 騫翠喚鐨勫悗涓や綅鏁板瓧  
%d 鍗佽繘鍒惰〃紺虹殑姣忔湀鐨勭鍑犲ぉ  
%D 鏈?澶?騫?nbsp; 
%e 鍦ㄤ袱瀛楃鍩熶腑錛屽崄榪涘埗琛ㄧず鐨勬瘡鏈堢殑絎嚑澶?nbsp; 
%F 騫?鏈?鏃?nbsp; 
%g 騫翠喚鐨勫悗涓や綅鏁板瓧錛屼嬌鐢ㄥ熀浜庡懆鐨勫勾  
%G 騫村垎錛屼嬌鐢ㄥ熀浜庡懆鐨勫勾  
%h 綆鍐欑殑鏈堜喚鍚?nbsp; 
%H 24灝忔椂鍒剁殑灝忔椂  
%I 12灝忔椂鍒剁殑灝忔椂  
%j 鍗佽繘鍒惰〃紺虹殑姣忓勾鐨勭鍑犲ぉ  
%m 鍗佽繘鍒惰〃紺虹殑鏈堜喚  
%M 鍗佹椂鍒惰〃紺虹殑鍒嗛挓鏁?nbsp; 
%n 鏂拌絎?nbsp; 
%p 鏈湴鐨凙M鎴朠M鐨勭瓑浠鋒樉紺?nbsp; 
%r 12灝忔椂鐨勬椂闂?nbsp; 
%R 鏄劇ず灝忔椂鍜屽垎閽燂細hh:mm  
%S 鍗佽繘鍒剁殑縐掓暟  
%t 姘村鉤鍒惰〃絎?nbsp; 
%T 鏄劇ず鏃跺垎縐掞細hh:mm:ss  
%u 姣忓懆鐨勭鍑犲ぉ錛屾槦鏈熶竴涓虹涓澶?錛堝間粠0鍒?錛屾槦鏈熶竴涓?錛?nbsp; 
%U 絎勾鐨勭鍑犲懆錛屾妸鏄熸湡鏃ュ仛涓虹涓澶╋紙鍊間粠0鍒?3錛?nbsp; 
%V 姣忓勾鐨勭鍑犲懆錛屼嬌鐢ㄥ熀浜庡懆鐨勫勾  
%w 鍗佽繘鍒惰〃紺虹殑鏄熸湡鍑狅紙鍊間粠0鍒?錛屾槦鏈熷ぉ涓?錛?nbsp; 
%W 姣忓勾鐨勭鍑犲懆錛屾妸鏄熸湡涓鍋氫負絎竴澶╋紙鍊間粠0鍒?3錛?nbsp; 
%x 鏍囧噯鐨勬棩鏈熶覆  
%X 鏍囧噯鐨勬椂闂翠覆  
%y 涓嶅甫涓栫邯鐨勫崄榪涘埗騫翠喚錛堝間粠0鍒?9錛?nbsp; 
%Y 甯︿笘綰儴鍒嗙殑鍗佽繘鍒跺勾浠?nbsp; 
%z錛?Z 鏃跺尯鍚嶇О錛屽鏋滀笉鑳藉緱鍒版椂鍖哄悕縐板垯榪斿洖絀哄瓧絎︺?nbsp; 
%% 鐧懼垎鍙?nbsp; 

濡傛灉鎯蟲樉紺虹幇鍦ㄦ槸鍑犵偣浜嗭紝騫朵互12灝忔椂鍒舵樉紺猴紝灝辮薄涓嬮潰榪欐紼嬪簭錛?nbsp; 

#include “time.h”  
#include “stdio.h”  
int main(void)  
{  
struct tm *ptr;  
time_t lt;  
char str[80];  
lt=time(NUL);  
ptr=localtime(<);  
strftime(str,100,"It is now %I %p",ptr);  
printf(str);  
return 0;  
}  

鍏惰繍琛岀粨鏋滀負錛?nbsp; 
It is now 4PM  

鑰屼笅闈㈢殑紼嬪簭鍒欐樉紺哄綋鍓嶇殑瀹屾暣鏃ユ湡錛?nbsp; 

#include <stdio.h>  
#include <time.h>  

void main( void )  
{  
struct tm *newtime;  
char tmpbuf[128];  
time_t lt1;  
time( <1 );  
newtime=localtime(<1);  
strftime( tmpbuf, 128, "Today is %A, day %d of %B in the year %Y.\n", newtime);  
printf(tmpbuf);  
}  

榪愯緇撴灉錛?nbsp; 

Today is Saturday, day 30 of July in the year 2005.  

4.5 璁$畻鎸佺畫鏃墮棿鐨勯暱搴?nbsp; 

      鏈夋椂鍊欏湪瀹為檯搴旂敤涓璁$畻涓涓簨浠舵寔緇殑鏃墮棿闀垮害錛屾瘮濡傝綆楁墦瀛楅熷害銆傚湪絎?鑺傝鏃墮儴鍒嗕腑錛屾垜宸茬粡鐢╟lock鍑芥暟涓句簡涓涓緥瀛愩侰lock()鍑芥暟鍙互綺劇‘鍒版縐掔駭銆傚悓鏃訛紝鎴戜滑涔熷彲浠ヤ嬌鐢╠ifftime()鍑芥暟錛屼絾瀹冨彧鑳界簿紜埌縐掋傝鍑芥暟鐨勫畾涔夊涓嬶細  

double difftime(time_t time1, time_t time0);  

      铏界劧璇ュ嚱鏁拌繑鍥炵殑浠ョ璁$畻鐨勬椂闂撮棿闅旀槸double綾誨瀷鐨勶紝浣嗚繖騫朵笉璇存槑璇ユ椂闂村叿鏈夊悓double涓鏍風殑綺劇‘搴︼紝榪欐槸鐢卞畠鐨勫弬鏁拌寰楃殑錛坱ime_t鏄互縐掍負鍗曚綅璁$畻鐨勶級銆傛瘮濡備笅闈竴孌電▼搴忥細  

#include "time.h"  
#include "stdio.h"  
#include "stdlib.h"  
int main(void)  
{  
time_t start,end;  
start = time(NUL);  
system("pause");  
end = time(NUL);  
printf("The pause used %f seconds.\n",difftime(end,start));//<-  
system("pause");  
return 0;  
}  

榪愯緇撴灉涓猴細  
璇鋒寜浠繪剰閿戶緇? . .  
The pause used 2.000000 seconds.  
璇鋒寜浠繪剰閿戶緇? . .  

      鍙互鎯沖儚錛屾殏鍋滅殑鏃墮棿騫朵笉閭d箞宸ф槸鏁存暣2縐掗挓銆傚叾瀹烇紝浣犲皢涓婇潰紼嬪簭鐨勫甫鏈?#8220;//<-”娉ㄩ噴鐨勪竴琛岀敤涓嬮潰鐨勪竴琛屼唬鐮佹浛鎹細  

printf("The pause used %f seconds.\n",end-start);  

鍏惰繍琛岀粨鏋滄槸涓鏍風殑銆?nbsp; 

4.6 鍒嗚В鏃墮棿杞寲涓烘棩鍘嗘椂闂?nbsp; 

      榪欓噷璇寸殑鍒嗚В鏃墮棿灝辨槸浠ュ勾銆佹湀銆佹棩銆佹椂銆佸垎銆佺絳夊垎閲忎繚瀛樼殑鏃墮棿緇撴瀯錛屽湪C/C++涓槸tm緇撴瀯銆傛垜浠彲浠ヤ嬌鐢╩ktime錛堬級鍑芥暟灝嗙敤tm緇撴瀯琛ㄧず鐨勬椂闂磋漿鍖栦負鏃ュ巻鏃墮棿銆傚叾鍑芥暟鍘熷瀷濡備笅錛?nbsp; 

time_t mktime(struct tm * timeptr);  

鍏惰繑鍥炲煎氨鏄漿鍖栧悗鐨勬棩鍘嗘椂闂淬傝繖鏍鋒垜浠氨鍙互鍏堝埗瀹氫竴涓垎瑙f椂闂達紝鐒跺悗瀵硅繖涓椂闂磋繘琛屾搷浣滀簡錛屼笅闈㈢殑渚嬪瓙鍙互璁$畻鍑?997騫?鏈?鏃ユ槸鏄熸湡鍑狅細  

#include "time.h"  
#include "stdio.h"  
#include "stdlib.h"  
int main(void)  
{  
struct tm t;  
time_t t_of_day;  
t.tm_year=1997-1900;  
t.tm_mon=6;  
t.tm_mday=1;  
t.tm_hour=0;  
t.tm_min=0;  
t.tm_sec=1;  
t.tm_isdst=0;  
t_of_day=mktime(&t);  
printf(ctime(&t_of_day));  
return 0;  
}  
榪愯緇撴灉錛?nbsp; 
Tue Jul 01 00:00:01 1997  
     鐜板湪娉ㄦ剰浜嗭紝鏈変簡mktime()鍑芥暟錛屾槸涓嶆槸鎴戜滑鍙互鎿嶄綔鐜板湪涔嬪墠鐨勪換浣曟椂闂村憿錛熶綘鍙互閫氳繃榪欑鍔炴硶綆楀嚭1945騫?鏈?5鍙鋒槸鏄熸湡鍑犲悧錛熺瓟妗堟槸鍚﹀畾鐨勩傚洜涓鴻繖涓椂闂村湪1970騫?鏈?鏃ヤ箣鍓嶏紝鎵浠ュ湪澶у鏁扮紪璇戝櫒涓紝榪欐牱鐨勭▼搴忚櫧鐒跺彲浠ョ紪璇戦氳繃錛屼絾榪愯鏃朵細寮傚父緇堟銆?
5錛庢葷粨
鏈枃浠嬬粛浜嗘爣鍑咰/C++涓殑鏈夊叧鏃ユ湡鍜屾椂闂寸殑姒傚康錛屽茍閫氳繃鍚勭瀹炰緥璁茶堪浜嗚繖浜涘嚱鏁板拰鏁版嵁緇撴瀯鐨勪嬌鐢ㄦ柟娉曘傜瑪鑰呰涓猴紝鍜屾椂闂寸浉鍏崇殑涓浜涙蹇墊槸鐩稿綋閲嶈鐨勶紝鐞嗚В榪欎簺姒傚康鏄悊瑙e悇縐嶆椂闂存牸寮忕殑杞崲鐨勫熀紜錛屾洿鏄簲鐢ㄨ繖浜涘嚱鏁板拰鏁版嵁緇撴瀯鐨勫熀紜銆?/p>



]]>
Debug鍑芥暟鐨勫疄鐜幫紙杞級http://m.shnenglu.com/Walker/articles/80471.html婕鑰吤?amp;鈥︹?錕?/dc:creator>婕鑰吤?amp;鈥︹?錕?/author>Sun, 19 Apr 2009 13:04:00 GMThttp://m.shnenglu.com/Walker/articles/80471.htmlhttp://m.shnenglu.com/Walker/comments/80471.htmlhttp://m.shnenglu.com/Walker/articles/80471.html#Feedback0http://m.shnenglu.com/Walker/comments/commentRss/80471.htmlhttp://m.shnenglu.com/Walker/services/trackbacks/80471.html   do{ \
    FILE* fp= fopen("/home/debug.log","a+"); \
    if( fp != NULL ) \
    { \
     fprintf(fp," \n %s(%d)-%s: \n",__FILE__,__LINE__,__FUNCTION__); \
     fprintf(fp,fmt,##args); \
     fclose(fp); \
     } \
   }while(0);

]]>
鍑芥暟鎸囬拡涓庤蔣浠惰璁?/title><link>http://m.shnenglu.com/Walker/articles/80469.html</link><dc:creator>婕鑰吤?amp;鈥︹?錕?/dc:creator><author>婕鑰吤?amp;鈥︹?錕?/author><pubDate>Sun, 19 Apr 2009 12:49:00 GMT</pubDate><guid>http://m.shnenglu.com/Walker/articles/80469.html</guid><wfw:comment>http://m.shnenglu.com/Walker/comments/80469.html</wfw:comment><comments>http://m.shnenglu.com/Walker/articles/80469.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/Walker/comments/commentRss/80469.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Walker/services/trackbacks/80469.html</trackback:ping><description><![CDATA[<p style="TEXT-INDENT: 2em">璁板緱鍒氬紑濮嬪伐浣滄椂錛屼竴浣嶉珮鎵嬪憡璇夋垜錛岃錛宭ongjmp鍜宻etjmp鐜╁緱涓嶇啛錛屽氨涓嶈鑷О涓篊璇█楂樻墜銆傚綋鏃舵垜鍗婁俊鍗婄枒錛屼負浜嗚鑷繁鍚戦珮鎵嬫柟鍚戣繄榪涳紝榪樻槸鑺變簡涓鐐規椂闂村幓瀛︿範longjmp鍜宻etjmp鐨勭敤娉曘傚悗鏉ユ槑鐧介偅涓嶅崟鏄煩鏉ヨ煩鍘婚偅鏍風畝鍗曪紝鑰屾槸涓縐嶉珮綰х殑寮傚父澶勭悊鏈哄埗錛屽湪鏌愪簺鎯呭喌涓嬬‘瀹炲緢鏈夌敤銆?/p> <p style="TEXT-INDENT: 2em"> </p> <p style="TEXT-INDENT: 2em">涓轟簡鏄劇ず鑷繁鐨勬妧宸э紝涔熷湪鑷繁鐨勭▼搴忎腑鐢ㄨ繃鍑犳銆傛笎娓愬彂鐜拌繖鏍風殑鎶宸у甫鏉ョ殑濂藉鏄湁浠d環鐨勶紝鐮村潖浜嗙▼搴忕殑緇撴瀯鍖栬璁★紝紼嬪簭鍙樺緱寰堥毦璇伙紝灝ゅ叾瀵規柊鎵嬫潵璇淬傜粓浜庢槑鐧借繖縐嶆妧宸т笉榪囨槸涓縐嶈皟鍛蟲枡錛屽湪灝戞暟鎯呭喌浣跨敤鍑犳錛屽彲浠ョ畝鍖栧闂鐨勫鐞嗐傚鏋滄妸璋冨懗鎷挎潵褰撻キ鍚冿紝涓瀹氫細鏈湯鍊掔疆錛屽啓鍑虹殑紼嬪簭浼氬憟鐜拌惀鍏諱笉鑹箣鐘躲?/p> <p style="TEXT-INDENT: 2em"> </p> <p style="TEXT-INDENT: 2em">浜嬪疄涓婏紝longjmp鍜宻etjmp鐜╁緱鐔熶笉鐔熶笌鏄笉鏄疌璇█楂樻墜錛屼笉鏄洜鏋滃叧緋匯備絾鏄紝濡傛灉鍙互濂楃敤閭d綅楂樻墜鐨勮瘽錛屾垜鍊掓兂璇村鏋滃嚱鏁版寚閽堢帺寰椾笉鐔燂紝灝變笉瑕佽嚜縐頒負C璇█楂樻墜銆備負浠涔堣繖涔堣鍛紝鍑芥暟鎸囬拡鏈夐偅涔堝鏉傚悧錛熷綋鐒朵笉鏄紝浠諱綍涓涓◢鏈夌紪紼嬪父璇嗙殑浜猴紝涓嶇浠栨噦涓嶆噦C璇█錛屽湪10鍒嗛挓鍐咃紝鎴戞兂浠栦竴瀹氬彲浠ユ槑鐧紺璇█涓殑鍑芥暟鎸囬拡鏄庝箞鍥炰簨銆?/p> <p style="TEXT-INDENT: 2em"> </p> <p style="TEXT-INDENT: 2em">鍘熷洜鍦ㄤ簬錛岄毦鐨勪笉鏄嚱鏁版寚閽堢殑姒傚康鍜岃娉曟湰韜紝鑰屾槸鍦ㄤ粈涔堟椂鍊欙紝浠涔堝湴鏂硅浣跨敤瀹冦傚嚱鏁版寚閽堜笉浠呮槸璇硶涓婄殑闂錛屾洿閲嶈鐨勬槸瀹冩槸涓涓璁¤寖鐣淬傜湡姝g殑楂樻墜褰撶劧涓嶅崟搴旇鎳傚緱璇硶灞傞潰涓婄殑鎶宸э紝鏇村簲璇ユ噦寰楄璁′笂鐨勬柟娉曘備笉鎳傝璁★紝鑳界畻楂樻墜鍚楋紵鎬鐤戞垜鍦ㄥじ澶у叾杈炲悧錛熼偅鎴戜滑鍏堢湅鐪嬪嚱鏁版寚閽堜笌鍝簺璁捐鏂規硶鏈夊叧錛?/p> <p style="TEXT-INDENT: 2em"> </p> <p style="TEXT-INDENT: 2em"><strong>涓庡垎灞傝璁℃湁鍏熾?/strong>鍒嗗眰璁捐鏃╁氨涓嶆槸浠涔堟柊鐨勬蹇碉紝鍒嗗眰鐨勫ソ澶勬槸浼楁墍鍛ㄧ煡鐨勶紝姣旇緝鏄庢樉濂藉灝辨槸綆鍖栧鏉傚害銆侀殧紱誨彉鍖栥傞噰鐢ㄥ垎灞傝璁★紝姣忓眰閮藉彧闇鍏沖績鑷繁鐨勪笢瑗匡紝榪欏噺灝忎簡緋葷粺鐨勫鏉傚害錛屽眰涓庡眰涔嬮棿鐨勪氦浜掍粎闄愪簬涓涓緢紿勭殑鎺ュ彛錛屽彧瑕佹帴鍙d笉鍙橈紝鏌愪竴灞傜殑鍙樺寲涓嶄細褰卞搷鍏跺畠灞傦紝榪欓殧紱諱簡鍙樺寲銆?/p> <p style="TEXT-INDENT: 2em"> </p> <p style="TEXT-INDENT: 2em">鍒嗗眰鐨勪竴鑸師鍒欐槸錛屼笂灞傚彲浠ョ洿鎺ヨ皟鐢ㄤ笅灞傜殑鍑芥暟錛屼笅灞傚垯涓嶈兘鐩存帴璋冪敤涓婂眰鐨勫嚱鏁般傝繖鍙ヨ瘽璇存潵綆鍗曪紝鍦ㄧ幇瀹炰腑錛屼笅灞傚父甯歌鍙嶈繃鏉ヨ皟鐢ㄤ笂灞傜殑鍑芥暟銆傛瘮濡備綘鍦ㄦ嫹璐濇枃浠舵椂錛屽湪鐣岄潰灞傝皟鐢ㄤ竴涓嫹璐濇枃浠跺嚱鏁般傜晫闈㈠眰鏄笂灞傦紝鎷瘋礉鏂囦歡鍑芥暟鏄笅灞傦紝涓婂眰璋冪敤涓嬪眰錛岀悊鎵褰撶劧銆備絾鏄鏋滀綘鎯沖湪鎷瘋礉鏂囦歡鏃惰繕瑕佹洿鏂拌繘搴︽潯錛岄棶棰樺氨鏉ヤ簡銆備竴鏂歸潰錛屽彧鏈夋嫹璐濇枃浠跺嚱鏁版墠鐭ラ亾鎷瘋礉鐨勮繘搴︼紝浣嗗畠涓嶈兘鍘繪洿鏂扮晫闈㈢殑榪涘害鏉°傚彟澶栦竴鏂歸潰錛岀晫闈㈢煡閬撳浣曞幓鏇存柊榪涘害鏉★紝浣嗗畠鍙堜笉鐭ラ亾鎷瘋礉鐨勮繘搴︺傛庝箞鍔烇紵甯歌鐨勫仛娉曪紝灝辨槸鐣岄潰璁劇疆涓涓洖璋冨嚱鏁扮粰鎷瘋礉鏂囦歡鍑芥暟錛屾嫹璐濇枃浠跺嚱鏁板湪閫傚綋鐨勬椂鍊欒皟鐢ㄨ繖涓洖璋冨嚱鏁版潵閫氱煡鐣岄潰鏇存柊鐘舵併?/p> <p style="TEXT-INDENT: 2em"> </p> <p style="TEXT-INDENT: 2em"><strong>涓庢娊璞℃湁鍏熾?/strong>鎶借薄鏄潰鍚戝璞′腑鏈閲嶈鐨勬蹇典箣涓錛屼篃鏄潰鍚戝璞″▉鍔涘己澶т箣澶勩傞潰鍚戝璞″彧鏄竴縐嶆濇兂錛屽ぇ瀹墮兘鐭ラ亾錛岀敤C璇█涓鏍峰彲浠ュ疄鐜伴潰鍚戝璞$殑緙栫▼銆傝繖鍙笉鏄負浜嗚刀鏃墮錛岃屾槸涓縐嶅疄鐢ㄧ殑鏂規硶銆傚鏋滀綘瀵規琛ㄧず鎬鐤戯紝鍙互鍘葷湅鐪婫TK+銆乴inux kernel絳夊紑婧愪唬鐮併?/p> <p style="TEXT-INDENT: 2em"> </p> <p style="TEXT-INDENT: 2em">鎺ュ彛鏄渶楂樼駭鐨勬娊璞°傚湪linux kernel閲岄潰錛屾帴鍙g殑姒傚康鏃犲涓嶅湪錛屽儚铏氭嫙鏂囦歡緋葷粺(VFS)錛屽畠瀹氫箟涓涓枃浠剁郴緇熺殑鎺ュ彛錛屽彧瑕佹寜鐓ц繖縐嶆帴鍙g殑瑙勮寖錛屼綘鍙互鑷繁寮鍙戜竴涓枃浠剁郴緇熸寕涓婂幓銆傝澶囬┍鍔ㄧ▼搴忔洿鏄姝わ紝涓嶅悓鐨勮澶囬┍鍔ㄧ▼搴忔湁鑷繁涓濂椾笉鍚岀殑鎺ュ彛瑙勮寖銆傚湪鑷繁寮鍙戣澶囧紑鍙戦┍鍔ㄧ▼搴忔椂錛屽彧瑕侀伒寰浉搴旂殑鎺ュ彛瑙勮寖灝辮浜嗐傛帴鍙e湪C璇█涓浣曡〃紺猴紵寰堢畝鍗曪紝灝辨槸涓緇勫嚱鏁版寚閽堛?/p> <p style="TEXT-INDENT: 2em"> </p> <p style="TEXT-INDENT: 2em"><strong>涓庢帴鍙d笌瀹炵幇鍒嗗紑鏈夊叧</strong>銆傞拡瀵規帴鍙g紪紼嬶紝鑰屼笉鏄拡瀵瑰疄鐜扮紪紼嬶紝姝や負銆婅璁℃ā寮忋嬬殑絎竴鏉¤璁″噯鍒欍傚垎寮鎺ュ彛涓庡疄鐜扮殑鐩爣鏄闅旂鍙樺寲銆傝蔣浠舵槸鍙樺寲鐨勶紝濡傛灉涓嶈兘鎶婂彉鍖栫殑涓滆タ闅旂寮鏉ワ紝瀵艱嚧鐗典竴鍙戣屽姩鍏ㄨ韓錛屼唬浠鋒槸宸ㄥぇ鐨勩傝繖鏄ぇ瀹舵墍涓嶆効鐪嬪埌鐨勩?/p> <p style="TEXT-INDENT: 2em"> </p> <p style="TEXT-INDENT: 2em">C璇█鏃㈢劧鍙互瀹炵幇闈㈠悜瀵硅薄鐨勭紪紼嬶紝鑷劧鍙互鍒╃敤璁捐妯″紡鏉ュ垎紱繪帴鍙d笌瀹炵幇銆傚儚妗ユ帴妯″紡銆佺瓥鐣ユā寮忋佺姸鎬佹ā寮忋佷唬鐞嗘ā寮忕瓑絳夛紝鍦–璇█涓紝鏃犱竴涓嶉渶瑕佸埄鐢ㄥ嚱鏁版寚閽堟潵瀹炵幇銆?/p> <p style="TEXT-INDENT: 2em"> </p> <p style="TEXT-INDENT: 2em"><strong>涓庢澗鑰﹀悎鍘熷垯鏈夊叧</strong>銆傞潰鍚戣繃紼嬩笌闈㈠悜瀵硅薄鐩告瘮錛屼箣鎵浠ユ樉寰楄媿鐧芥棤鍔涳紝鍘熷洜涔嬩竴灝辨槸瀹冧笉鍍忛潰鍚戝璞′竴鏍鳳紝鍙互鐩磋鐨勬妸鐜板疄妯″瀷鏄犲皠鍒拌綆楁満涓傞潰鍚戣繃紼嬭鐨勬槸灞傚眰鎺у埗錛岃岄潰鍚戝璞℃洿寮鴻皟鐨勫璞¢棿鐨勫垎宸ュ悎浣溿傜幇瀹炰笘鐣屼腑鐨勫璞″浜庡眰嬈″叧緋葷殑杈冨皯錛屽浜庡絳夊叧緋葷殑灞呭銆備篃灝辨槸璇達紝瀵硅薄闂寸殑浜や簰寰寰鏄弻鍚戠殑銆傝繖浼氬姞寮哄璞¢棿鐨勮﹀悎鎬с?/p> <p style="TEXT-INDENT: 2em"> </p> <p style="TEXT-INDENT: 2em">鑰﹀悎鏈韓娌℃湁閿欙紝瀹為檯涓婅﹀悎鏄繀涓嶅彲灝戠殑錛屾病鏈夎﹀悎灝辨病鏈夊崗浣滐紝瀵硅薄涔嬮棿鏃犳硶褰㈡垚涓涓暣浣擄紝浠涔堜簨涔熷仛涓嶄簡銆傚叧閿湪浜庤﹀悎瑕佹伆褰擄紝鍦ㄥ疄鐜伴瀹氬姛鑳界殑鍓嶆彁涓嬶紝鑰﹀悎瑕佸敖鍙兘鐨勬澗鏁c傝繖鏍鳳紝緋葷粺鐨勪竴閮ㄥ垎鍙樺寲瀵瑰叾瀹冮儴鍒嗙殑褰卞搷浼氬緢灝戙?/p> <p style="TEXT-INDENT: 2em"> </p> <p style="TEXT-INDENT: 2em">鍑芥暟鎸囬拡鏄В鑰﹀璞″叧緋葷殑鏈浣沖埄鍣ㄣ係ignal(濡俠oost鐨剆ignal鍜実lib涓殑signal)鏈哄埗鏄竴涓吀鍨嬬殑渚嬪瓙錛屼竴涓璞¤嚜韜殑鐘舵佸彲鑳芥槸鍦ㄥ彉鍖栫殑錛堟垨鑰呬細瑙﹀彂涓浜涗簨浠訛級錛岃屽叾瀹冨璞″叧蹇冨畠鐨勫彉鍖栥備竴鏃﹁瀵硅薄鏈夊彉鍖栧彂鐢燂紝鍏跺畠瀵硅薄瑕佹墽琛岀浉搴旂殑鎿嶄綔銆?/p> <p style="TEXT-INDENT: 2em"> </p> <p style="TEXT-INDENT: 2em">濡傛灉璇ュ璞$洿鎺ュ幓璋冪敤鍏跺畠瀵硅薄鐨勫嚱鏁幫紝鍔熻兘鏄畬鎴愪簡錛屼絾瀵硅薄涔嬮棿鐨勮﹀悎澶揣浜嗐傚浣曟妸榪欑鑰﹀悎闄嶅埌鏈浣庡憿錛宻ignal鏈哄埗鏄緢濂界殑鍔炴硶銆傚畠鐨勫師鐞嗗ぇ鑷村涓嬶細鍏跺畠鍏蟲敞璇ュ璞″彉鍖栫殑瀵硅薄涓誨姩娉ㄥ唽涓涓洖璋冨嚱鏁板埌璇ュ璞′腑銆備竴鏃﹁瀵硅薄鏈夊彉鍖栧彂鐢燂紝灝辮皟鐢ㄨ繖浜涘洖璋冨嚱鏁伴氱煡鍏跺畠瀵硅薄銆傚姛鑳藉悓鏍峰疄鐜頒簡錛屼絾瀹冧滑涔嬮棿鐨勮﹀悎搴﹂檷浣庝簡銆?/p> <p style="TEXT-INDENT: 2em"> </p> <p style="TEXT-INDENT: 2em">鍦–璇█涓紝瑕佽В鍐充互涓婅繖浜涢棶棰橈紝涓嶉噰鐢ㄥ嚱鏁版寚閽堬紝灝嗘槸闈炲父鍥伴毦鐨勩傚湪緙栫▼涓紝濡傛灉浣犱粠娌℃湁鎯沖埌鐢ㄥ嚱鏁版寚閽堬紝寰堥毦鎯沖儚浣犳槸涓涓狢璇█楂樻墜銆?/p> <img src ="http://m.shnenglu.com/Walker/aggbug/80469.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Walker/" target="_blank">婕鑰吤?鈥︹?錕?/a> 2009-04-19 20:49 <a href="http://m.shnenglu.com/Walker/articles/80469.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title> 錛堣漿錛夌粡鍏哥殑浣嶈繍綆楀疄渚?/title><link>http://m.shnenglu.com/Walker/articles/80466.html</link><dc:creator>婕鑰吤?amp;鈥︹?錕?/dc:creator><author>婕鑰吤?amp;鈥︹?錕?/author><pubDate>Sun, 19 Apr 2009 12:44:00 GMT</pubDate><guid>http://m.shnenglu.com/Walker/articles/80466.html</guid><wfw:comment>http://m.shnenglu.com/Walker/comments/80466.html</wfw:comment><comments>http://m.shnenglu.com/Walker/articles/80466.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/Walker/comments/commentRss/80466.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/Walker/services/trackbacks/80466.html</trackback:ping><description><![CDATA[<p>1) int鍨嬪彉閲忓驚鐜乏縐籯嬈★紝鍗砤=a < <k |a>>16-k  (璁緎izeof(int)=16) <br>(2) int鍨嬪彉閲廰寰幆鍙崇Щk嬈★紝鍗砤=a>>k |a < <16-k  (璁緎izeof(int)=16) <br>(3)鏁存暟鐨勫鉤鍧囧?<br>瀵逛簬涓や釜鏁存暟x,y錛屽鏋滅敤 (x+y)/2 姹傚鉤鍧囧鹼紝浼氫駭鐢熸孩鍑猴紝鍥犱負 x+y 鍙兘浼氬ぇ浜嶪NT_MAX錛屼絾鏄垜浠煡閬撳畠浠殑騫沖潎鍊兼槸鑲畾涓嶄細婧㈠嚭鐨勶紝鎴戜滑鐢ㄥ涓嬬畻娉曪細 <br>int average(int x, int y)  //榪斿洖X,Y 鐨勫鉤鍧囧?<br>{    <br>    return (x&y)+((x^y)>>1); <br>} <br>(4)鍒ゆ柇涓涓暣鏁版槸涓嶆槸2鐨勫箓,瀵逛簬涓涓暟 x >= 0錛屽垽鏂粬鏄笉鏄?鐨勫箓 <br>boolean power2(int x) <br>{ <br>    return ((x&(x-1))==0)&&(x!=0)錛?<br>} <br>(5)涓嶇敤temp浜ゆ崲涓や釜鏁存暟 <br>void swap(int x , int y) <br>{ <br>    x ^= y; <br>    y ^= x; <br>    x ^= y; <br>} <br>(6)璁$畻緇濆鍊?<br>int abs( int x ) <br>{ <br>int y ; <br>y = x >> 31 ; <br>return (x^y)-y ;        //or: (x+y)^y <br>} <br>(7)鍙栨ā榪愮畻杞寲鎴愪綅榪愮畻 (鍦ㄤ笉浜х敓婧㈠嚭鐨勬儏鍐典笅) <br>        a % (2^n) 絳変環浜?a & (2^n - 1) <br>(8)涔樻硶榪愮畻杞寲鎴愪綅榪愮畻 (鍦ㄤ笉浜х敓婧㈠嚭鐨勬儏鍐典笅) <br>        a * (2^n) 絳変環浜?a < < n <br>(9)闄ゆ硶榪愮畻杞寲鎴愪綅榪愮畻 (鍦ㄤ笉浜х敓婧㈠嚭鐨勬儏鍐典笅) <br>        a / (2^n) 絳変環浜?a>> n <br>        渚? 12/8 == 12>>3 <br>(10) a % 2 絳変環浜?a & 1        <br>(11) if (x == a) x= b; <br>銆銆          else x= a; <br>銆銆      絳変環浜?x= a ^ b ^ x; <br>(12) x 鐨?鐩稿弽鏁?琛ㄧず涓?(~x+1) </p> <p>(13)姹備粠x浣嶏紙楂橈級鍒皔浣嶏紙浣庯級闂村叡鏈夊灝戜釜1 </p> <p>public static int FindChessNum(int x, int y, ushort k) <br>        { <br>            int re = 0; <br>            for (int i = y; i <= x; i++) <br>            { <br>                re += ((k >> (i - 1)) & 1); <br>            } <br>            return re; <br>        } <br>(14)<br>/*灝?2浣嶆暟鍒嗚В涓?涓?浣嶆暟澶勭悊鍚庡啀鍚堟垚32浣嶆暟榪斿洖*/<br>DWORD GetDW(DWORD dw)<br>{<br> DWORD dwRet=0;<br> if (dw!=0)<br> {<br>  BYTE b1=(dw>>24)&0xff,b2=(dw>>16)&0xff,b3=(dw>>8)&0xff,b4=dw&0xff;<br>  //鍒嗗埆澶勭悊 b1,b2,b3,b4<br>  dwRet=b1;<br>  dwRet=(dwRet<<8)+b2;<br>  dwRet=(dwRet<<8)+b3;<br>  dwRet=(dwRet<<8)+b4;</p> <p>  return dwRet;<br> }<br> else{<br>  return 0;<br> }<br>}<br><br><br>  媯嫻嬩竴涓棤絎﹀彿鏁版槸涓嶄負2^n-1(^涓哄箓)錛?nbsp;  x&(x+1)   <br>    <br>  灝嗘渶鍙充晶0浣嶆敼涓?浣嶏細   x   |   (x+1)   <br>    <br>  浜岃繘鍒惰ˉ鐮佽繍綆楀叕寮忥細   <br>  -x   =   ~x   +   1   =   ~(x-1)   <br>  ~x   =   -x-1     <br>  -(~x)   =   x+1   <br>  ~(-x)   =   x-1   <br>  x+y   =   x   -   ~y   -   1   =   (x|y)+(x&y)     <br>  x-y   =   x   +   ~y   +   1   =   (x|~y)-(~x&y)     <br>  x^y   =   (x|y)-(x&y)   <br>  x|y   =   (x&~y)+y   <br>  x&y   =   (~x|y)-~x   <br>    <br>  x==y:         ~(x-y|y-x)   <br>  x!=y:         x-y|y-x   <br>  x<   y:         (x-y)^((x^y)&((x-y)^x))   <br>  x<=y:         (x|~y)&((x^y)|~(y-x))   <br>  x<   y:         (~x&y)|((~x|y)&(x-y))//鏃犵鍙穢,y姣旇緝   <br>  x<=y:         (~x|y)&((x^y)|~(y-x))//鏃犵鍙穢,y姣旇緝   <br>    <br>    <br>  浣跨敤浣嶈繍綆楃殑鏃犲垎鏀唬鐮侊細   <br>    <br>  璁$畻緇濆鍊?nbsp;  <br>  int   abs(   int   x   )     <br>  {   <br>  int   y   ;   <br>  y   =   x   >>   31   ;   <br>  return   (x^y)-y   ;//or:   (x+y)^y   <br>  }   <br>    <br>  絎﹀彿鍑芥暟錛歴ign(x)   =   -1,   x<0;   0,   x   ==   0   ;   1,   x   >   0   <br>  int   sign(int   x)   <br>  {   <br>  return   (x>>31)   |   (unsigned(-x))>>31   ;//x=-2^31鏃跺け璐?^涓哄箓)   <br>  }   <br>    <br>  涓夊兼瘮杈冿細cmp(x,y)   =   -1,   x<y;   0,   x==y;   1,   x   >   y   <br>  int   cmp(   int   x,   int   y   )   <br>  {   <br>  return   (x>y)-(x-y)   ;   <br>  }   <br>    <br>  doz=x-y,   x>=y;   0,   x<y   <br>  int   doz(int   x,   int   y   )   <br>  {   <br>  int   d   ;   <br>  d   =   x-y   ;   <br>  return   d   &   ((~(d^((x^y)&(d^x))))>>31)   ;   <br>  }   <br>    <br>  int   max(int   x,   int   y   )     <br>  {   <br>  int   m   ;   <br>  m   =   (x-y)>>31   ;     <br>  return   y   &   m   |   x   &   ~m   ;   <br>  }   <br>    <br>  涓嶄嬌鐢ㄧ涓夋柟浜ゆ崲x,y:   <br>  1.x   ^=   y   ;   y   ^=   x   ;   x   ^=   y   ;   <br>  2.x   =   x+y   ;   y   =   x-y   ;   x   =   x-y   ;   <br>  3.x   =   x-y   ;   y   =   y+x   ;   x   =   y-x   ;   <br>  4.x   =   y-x   ;   x   =   y-x   ;   x   =   x+y   ;     <br>    <br>  鍙屽間氦鎹?x   =   a,   x==b;   b,   x==a//甯歌緙栫爜涓簒   =   x==a   ?   b   :a   ;   <br>  1.x   =   a+b-x   ;   <br>  2.x   =   a^b^x   ;   <br>    <br>  涓嬭垗鍏ュ埌2鐨刱嬈℃柟鐨勫嶆暟:   <br>  1.x   &   ((-1)<<k)   <br>  2.(((unsigned)x)>>k)<<k   <br>  涓婅垗鍏ワ細   <br>  1.   t   =   (1<<k)-1   ;   x   =   (x+t)&~t   ;   <br>  2.t   =   (-1)<<k   ;   x   =   (x-t-1)&t   ;   <br>    <br>  浣嶈鏁?緇熻1浣嶇殑鏁伴噺錛?nbsp;  <br>  1.   <br>  int   pop(unsigned   x)   <br>  {   <br>  x   =   x-((x>>1)&0x55555555)   ;   <br>  x   =   (x&0x33333333)   +   ((x>>2)   &   0x33333333   )   ;   <br>  x   =   (x+(x>>4))   &   0x0f0f0f0f   ;   <br>  x   =   x   +   (x>>8)   ;   <br>  x   =   x   +   (x>>16)   ;   <br>  return   x   &   0x0000003f   ;   <br>  }   <br>  2.   <br>  int   pop(unsigned   x)   {   <br>  static   char   table[256]   =   {   0,1,1,2,   1,2,2,3,   ....,   6,7,7,8   }   ;   <br>  return   table[x&0xff]+table[(x>>8)&0xff]+table[(x>>16)&0xff]+table[(x>>24)]   ;   <br>  }   <br>    <br>  濂囧伓鎬ц綆?   <br>  x   =   x   ^   (   x>>1   )   ;   <br>  x   =   x   ^   (   x>>2   )   ;   <br>  x   =   x   ^   (   x>>4   )   ;   <br>  x   =   x   ^   (   x>>8   )   ;   <br>  x   =   x   ^   (   x>>16   )   ;   <br>  緇撴灉涓綅浜巟鏈浣庝綅錛屽鏃犵鍙穢,緇撴灉鐨勭i浣嶆槸鍘熸暟絎琲浣嶅埌鏈宸︿晶浣嶇殑濂囧伓鎬?nbsp;  <br>    <br>    <br>  浣嶅弽杞細   <br>  unsigned   rev(unsigned   x)   <br>  {   <br>  x   =   (x   &   0x55555555)   <<   1   |   (x>>1)   &   0x55555555   ;   <br>  x   =   (x   &   0x33333333)   <<   2   |   (x>>2)   &   0x33333333   ;   <br>  x   =   (x   &   0x0f0f0f0f)   <<   4   |   (x>>4)   &   0x0f0f0f0f   ;   <br>  x   =   (x<<24)   |   ((x&0xff00)<<8)   |   ((x>>8)   &   0xff00)   |   (x>>24)   ;   <br>  return   x   ;   <br>  }   <br>    <br>  閫掑浣嶅弽杞悗鐨勬暟錛?nbsp;  <br>  unsigned   inc_r(unsigned   x)   <br>  {   <br>  unsigned   m   =   0x80000000   ;   <br>  x   ^=   m   ;   <br>  if(   (int)x   >=   0   )     <br>  do   {   m   >>=   1   ;   x   ^=   m   ;   }   while(   x   <   m   )   ;   <br>  return   x   ;   <br>  }   <br>    <br>  娣烽変綅錛?nbsp;  <br>  abcd   efgh   ijkl   mnop   ABCD   EFGH   IJKL   MNOP->aAbB   cCdD   eEfF   gGhH   iIjJ   kKlL   mMnN   oOpP   <br>  unsigned   ps(unsigned   x)   <br>  {   <br>  unsigned   t   ;   <br>  t   =   (x   ^   (x>>8))   &   0x0000ff00;   x   =   x   ^   t   ^   (t<<8)   ;   <br>  t   =   (x   ^   (x>>4))   &   0x00f000f0;   x   =   x   ^   t   ^   (t<<4)   ;   <br>  t   =   (x   ^   (x>>2))   &   0x0c0c0c0c;   x   =   x   ^   t   ^   (t<<2)   ;   <br>  t   =   (x   ^   (x>>1))   &   0x22222222;   x   =   x   ^   t   ^   (t<<1)   ;   <br>  return   x   ;   <br>  }   <br>    <br>  浣嶅帇緙╋細   <br>  閫夋嫨騫跺彸縐誨瓧x涓搴斾簬鎺╃爜m鐨?浣嶇殑浣?濡傦細compress(abcdefgh,01010101)=0000bdfh   <br>  compress_left(x,m)鎿嶄綔涓庢綾諱技錛屼絾緇撴灉浣嶅湪宸﹁竟:   bdfh0000.   <br>  unsigned   compress(unsigned   x,   unsigned   m)   <br>  {   <br>  unsigned   mk,   mp,   mv,   t   ;   <br>  int   i   ;   <br>    <br>  x   &=   m   ;   <br>  mk   =   ~m   <<   1   ;   <br>  for(   i   =   0   ;   i   <   5   ;   ++i   )   {   <br>  mp   =   mk   ^   (   mk   <<   1)   ;   <br>  mp   ^=   (   mp   <<   2   )   ;   <br>  mp   ^=   (   mp   <<   4   )   ;   <br>  mp   ^=   (   mp   <<   8   )   ;   <br>  mp   ^=   (   mp   <<   16   )   ;   <br>  mv   =   mp   &   m   ;   <br>  m   =   m   ^   mv   |   (mv   >>   (1<<i)   )   ;   <br>  t   =   x   &   mv   ;   <br>  x     =   x   ^   t   |   (   t   >>   (   1<<i)   )   ;   <br>  mk   =   mk   &   ~mp   ;   <br>  }   <br>  return   x   ;   <br>  }   <br>    <br>    <br>  浣嶇疆鎹細   <br>  鐢?2涓?浣嶆暟琛ㄧず浠庢渶浣庝綅寮濮嬬殑浣嶇殑鐩爣浣嶇疆錛岀粨鏋滄槸涓涓?2*5鐨勪綅鐭╅樀錛?nbsp;  <br>  灝嗚鐭╅樀娌挎瀵硅綰胯漿緗悗鐢?涓?2浣嶅瓧p[5]瀛樻斁銆?nbsp;  <br>  SAG(x,m)   =   compress_left(x,m)   |   compress(x,~m)   ;   <br>  鍑嗗宸ヤ綔錛?nbsp;  <br>  void   init(   unsigned   *p   )   {   <br>  p[1]   =   SAG(   p[1],   p[0]   )   ;   <br>  p[2]   =   SAG(   SAG(   p[2],   p[0]),   p[1]   )   ;   <br>  p[3]   =   SAG(   SAG(   SAG(   p[3],   p[0]   ),   p[1]),   p[2]   )   ;   <br>  p[4]   =   SAG(   SAG(   SAG(   SAG(   p[4],   p[0]   ),   p[1])   ,p[2]),   p[3]   )   ;   <br>  }   <br>  瀹為檯緗崲錛?nbsp;  <br>  int   rep(   unsigned   x   )   {   <br>  x   =   SAG(x,p[0]);   <br>  x   =   SAG(x,p[1]);   <br>  x   =   SAG(x,p[2]);   <br>  x   =   SAG(x,p[3]);   <br>  x   =   SAG(x,p[4]);   <br>  return   x   ;   <br>  }   <br>    <br>  浜岃繘鍒剁爜鍒癎RAY鐮佺殑杞崲:   <br>  unsigned   B2G(unsigned   B   )   <br>  {   <br>  return   B   ^   (B>>1)   ;   <br>  }   <br>  GRAY鐮佸埌浜岃繘鍒剁爜:   <br>  unsigned   G2B(unsigned   G)   <br>  {   <br>  unsigned   B   ;   <br>  B   =   G   ^   (G>>1)   ;   <br>  B   =   G   ^   (G>>2)   ;   <br>  B   =   G   ^   (G>>4)   ;   <br>  B   =   G   ^   (G>>8)   ;   <br>  B   =   G   ^   (G>>16)   ;   <br>  return   B   ;   <br>  }   <br>    <br>  鎵懼嚭鏈宸?瀛楄妭鐨勪綅緗?   <br>  int   zbytel(   unsigned   x   )   <br>  {   <br>  static   cahr   table[16]   =   {   4,3,2,2,   1,1,1,1,   0,0,0,0,   0,0,0,0   }   ;   <br>  unsigned   y   ;   <br>  y   =   (x&0x7f7f7f7f)   +   0x7f7f7f7f   ;   <br>  y   =   ~(y|x|0x7f7f7f7f)   ;   <br>  return   table[y*0x00204081   >>   28]   ;//涔樻硶鍙敤縐諱綅鍜屽姞瀹屾垚   <br>  }   <br><br><br></p> <p>C\C++鏀寔姣旇緝浣庨樁鐨勪綅榪愮畻錛屽湪鏄紬浜虹殕鐭ョ殑浜嗐傛瘡鏈珻\C++鐨勬暀縐戜功閮戒細璇村埌榪欓儴鍒嗙殑鍐呭錛屼笉榪囬兘寰堢畝鐣ワ紝鎴戞兂浼氭湁寰堝浜轟笉鐭ラ亾浣嶈繍綆楃敤鍦ㄤ粈涔堝湴鏂廣傝繖涓笘瀛愬氨綆鐣ヨ璇翠綅榪愮畻鐨勭敤澶勶紝鏇磋繘涓姝ョ殑鐢ㄦ硶瑕佸ぇ瀹惰嚜宸卞幓浣撲細銆傝屼富瑕佽鐨勬槸鎿嶄綔鏍囧織鍊兼柟闈€?/p> <p> </p> <p> /****************************************/</p> <p>#define BTI_MSK(bit)    (1 << (bit))<br>#define BIT_SET(x,bit)  ((x) |=  BTI_MSK (bit))<br>#define BIT_CLR(x,bit)  ((x) &= ~BTI_MSK (bit))<br>#define BIT_TST(x,bit)  ((x) &   BTI_MSK (bit))</p> <p> /****************************************/</p> <p> </p> <p>鑰冭檻涓涓簨鐗┿佷竴涓郴緇熴佹垨鑰呬竴涓▼搴忓彲鑳戒細鍑虹幇涓縐嶆垨鑰呭嚑縐嶇姸鎬併備負浜嗗湪涓嶅悓鐨勭姸鎬佷笅錛屼綔鍑轟笉鍚岀殑琛屼負錛屼綘鍙互璁劇珛涓浜涙爣蹇楀鹼紝鍐嶆牴鎹爣蹇楀兼潵鍋氬垽鏂傛瘮濡侰++鐨勬枃浠舵祦錛屼綘灝卞彲浠ヨ瀹氫竴浜涙爣蹇楀鹼紝ios::app, ios::ate, ios::binary, ios::in, ios::out, ios::trunc錛屽茍涓斿彲浠ュ皢瀹冪敤|緇勫悎璧鋒潵鍒涘緩涓涓伆褰撶殑鏂囦歡嫻併備綘鍙兘浼氬皢榪欎簺鏍囧織鍊煎畾涔変負bool綾誨瀷錛屼笉榪囪繖鏍瘋鏄緗殑鏍囧織鍊間竴澶氾紝灝變細寰堟氮璐圭┖闂淬?br><br>鑰屽亣濡傚畾涔変竴涓暣鍨嬫暟鍊鹼紝unsigned int flags; 鍦ㄧ幇鍦ㄧ殑緋葷粺錛宖lags搴旇鏄?2浣? 鐢?,2,3....32灝嗕綅榪涜緙栧彿錛屾垜浠彲浠ヨ繘琛岃繖鏍風殑鍒ゆ柇, 褰撲綅1鍙?鏃訛紝琛ㄧず鐢ㄨ鏂瑰紡鎵撳紑鏂囦歡錛屽綋浣?鍙?鏃訛紝琛ㄧず鐢ㄥ啓鏂瑰紡鎵撳紑鏂囦歡錛屽綋浣?鍙?鏃訛紝鐢ㄤ簩榪涘埗鏂瑰紡鎵撳紑鏂囦歡....鍥犱負flags鏈?2浣嶏紝灝卞彲浠ヨ緗?2涓笉鍚岀殑鐘舵佸鹼紝涔熺浉褰撲簬32涓猙ool綾誨瀷銆傝繖鏍蜂竴鏂歸潰鐪佷簡絀洪棿, 鍙︿竴鏂歸潰涔熷浜嗕釜濂藉錛屽氨鏄鍓嶉潰鎵璇寸殑錛屽彲浠ュ皢鏍囧織鍊肩粍鍚堣搗鏉ャ?br>//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><br><br>濂藉暒錛屼笂闈㈡湁鐐逛笉娓呬笉妤氱殑銆備笅闈㈢湅鐪嬪埌搴曟庝箞鎿嶄綔榪欎簺鏍囧織鍊箋?br>璁炬兂C++鐨勭被ios榪欐牱瀹氫箟, 鍏跺疄娌℃湁榪欎釜綾伙紝鍙湁ios_basic綾伙紝typedef basic_ios<char> ios;<br><br>class ios<br>{<br>public:<br>    enum {    app = 0x0001, ate = 0x0002, binary = 0x0004,<br>        in = 0x0008,  out = 0x0010, trunc = 0x0020 };<br>    ....<br>private:<br>    unsigned int flags;<br>};<br><br>娉ㄦ剰涓婇潰enum璇彞涓紝姣忎竴涓暟鍊煎彧鏈?浣嶆槸1錛屽叾浣欐槸0錛岃繖涓緢閲嶈錛屼綘鍙互灝嗗畠鍖栨垚2榪涘埗鐪嬬湅銆?br><br>鐜板湪灝唂lags鐩稿簲鐨勪綅璁劇疆涓?, 鍙互榪欐牱鍋?nbsp;flags |= app銆傝繖涓瓑浜巉lags = flags | app, 涓轟粈涔堝憿? app鍙湁1浣嶆槸1錛屽叾浣欐槸0錛屽洜涓? | 1 = 0錛?nbsp;0 | 0 = 0錛?nbsp;榪欐牱0瀵瑰簲鐨勪綅鏄笉鍙樼殑銆傝? | 1 = 1, 1 | 0 = 1, 1瀵瑰簲鐨勪綅涓嶈鍘熸潵鏄粈涔堢姸鎬侊紝閮戒竴瀹氫負1銆傚鏋滄兂瑕佸皢鍑犱釜浣嶉兘璁劇疆涓?錛屽彲浠ヨ繖鏍峰仛 flags |= (app | ate | binary)銆傚洜涓烘瘡涓猠num甯告暟鍚勬湁涓浣嶄負1, 涓庤繍綆椾箣鍚庡氨鏈?浣嶄負1錛屽氨濡備笂闈㈢殑鍒嗘瀽錛屽氨鍙互灝嗛偅3浣嶉兘璁劇疆涓?, 鍏朵綑浣嶄笉鍙樸傝繖涓氨鏄爣蹇楀彲浠ョ粍鍚堣搗鏉ョ敤鐨勫師鍥犮備篃鍙互鐢?緇勫悎璧鋒潵錛屽師鍥犲湪浜?涓嬮潰鐨勬暟瀛楁槸2榪涘埗)0001 + 0010 + 0100 = 0111 璺熶笌榪愮畻緇撴灉涓鏍楓備笉榪囦笉鎻愬$敤+, 鑰冭檻(app | ate | binary)瑕佹槸鎴戜笉灝忓績鍐欏浜嗕釜鏍囧織鍊鹼紝(app | ate | ate | binary)緇撴灉榪樻槸姝g‘鐨勶紝濡傛灉鐢?鐨勮瘽錛屽氨浼氫駭鐢熻繘浣嶏紝緇撴灉灝變細閿欒銆傞氬父鎴戜滑涓嶇煡閬撳師鍏堝凡緇忕粍鍚堜簡澶氬皯涓爣蹇楀間簡錛岀敤鎴栬繍綆椾細瀹夊叏銆?br><br>鐜板湪灝唂lags瀵瑰簲鐨勪綅璁劇疆涓?, 鍙互榪欐牱鍋?nbsp;flags &= ~app銆傜浉褰撲簬 flags = flags & (~app). app鍙栧弽涔嬪悗錛屽彧鏈?浣嶆槸0錛屽叾浣欐槸1錛屽仛涓庤繍綆椾箣鍚庯紝1瀵瑰簲鐨勪綅騫朵笉浼氭敼鍙橈紝0瀵瑰簲鐨勪負涓嶇鍘熸潵鏄?鏄?錛岄兘鑲畾涓?錛岃繖鏍峰氨灝嗗搴旂殑浣嶈緗簡0銆傚悓鏍峰悓鏃惰緗嚑涓爣蹇椾綅鍙互榪欐牱鍋氾紝flags &= ~(app | ate | binary)銆?br><br>鐜板湪灝唂lags瀵瑰簲鐨勪綅錛屽鏋滄槸1灝卞彉鎴?錛屽鏋滄槸0灝卞彉鎴?錛屽彲浠ヨ繖鏍峰仛 flags ^= app銆傚悓鏃惰緗嚑涓爣蹇椾綅鍙互鍐欐垚 flags ^= (app | ate | binary)銆備笉鍐嶅仛鍒嗘瀽浜嗭紝涓嶇劧灝卞お緗楀棪浜嗐備笉榪囦篃緇欏ぇ瀹朵竴涓緥瀛愶紝浣犳煡鏌scii琛紝浼氬彂鐜板搴旂殑澶у皬鍐欏瓧姣嶆槸鐩稿樊鍊掓暟絎?浣嶏紝鍙互鐢ㄨ繖鏍風殑鍑芥暟緇熶竴鐨勫皢澶у啓鍙樻垚灝忓啓錛屽皬鍐欏彉鎴愬ぇ鍐欍?br>void xchgUppLow(string& letters)<br>{<br>        const unsigned int mask = (1<<5);<br><br>        for (size_t i=0; i<letters.length(); i++)<br>                letters[i] ^= mask;<br>}<br>鍓嶆彁鏄緭鍏ョ殑string涓瀹氳鍏ㄦ槸瀛楁瘝, 鑰岃鎯蟲槸鎿嶄綔瀛楁瘝錛屽彲浠ュ湪鍘熸潵鍩虹涓婂姞涓垽鏂?br><br>濂藉暒錛屼笂闈㈠凡緇忓彲浠ヨ緗甪lags鐨勫搴斾綅鍊間簡錛岃鏄垽鏂憿錛熷彲浠ヨ繖鏍峰啓 if (flags & app) 榪欐牱鍙互鍒ゆ柇瀵瑰簲鐨勪綅鍊兼槸鍚︿負1, 鍥犱負C\C++璇█涓潪0灝辯湡銆俛pp鍙湁涓浣嶆槸1錛屽叾浣欐槸0錛屽鏋? flags鐨勫搴斾綅涔熸槸0錛屽湪涓庢搷浣滀笅灝卞緱鍒扮粨鏋?錛屽弽涔嬮潪0錛岃繖鏍峰氨鍙互鍒ゆ柇鏍囧織浣嶄簡銆?br><br>//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><br>涓婇潰鍏充簬鏍囧織鍊肩殑鎿嶄綔灝變粙緇嶅畬姣曘傚叾瀹炲湪C++涓凡緇忔湁浜嗕釜bitset浜嗭紝娌℃湁蹇呰鍘昏嚜宸辮繘琛屼綆闃剁殑浣嶈繍綆楋紝涓婇潰鐨勫洓涓搷浣滃湪bitset涓垎鍒彨鍋歴et, reset, flip, test銆備笉榪囧湪C涓紝榪欐牱鐨勪唬鐮佽繕寰堝父瑙? 鍙嶆鐭ラ亾澶氱偣涔熸病鏈夊潖澶勩?br><br>鐢?nbsp;windows API 緙栫▼錛屼綘涔熺粡甯鎬細紕板埌榪欐牱鐨勬爣蹇楀鹼紝瑕佷簰鐩哥粍鍚堬紝鍙互鐢▅, 涔熷彲浠ョ敤+(鍙槸寤鴻鐢▅錛岀悊鐢變笂闈㈣浜?. 瀹冪殑鏍囧織鍊間篃鏄繖鏍峰畾涔夌殑錛屼笉榪囩敤#define<br>#define WS_BORDER    0x0001<br>#define WS_CAPTION    0x0002<br>......<br>褰撳垵鎴戝氨鏄兂涓嶆槑鐧戒負浠涔堝彲浠ョ敤|鎴栬呯敤+鏉ョ粍鍚堬紝鐜板湪鐭ラ亾浜嗐?br><br>(娉細涓婇潰鍑虹幇鐨勬暟瀛楁槸鎴戣嚜宸變綔鐨勶紝鍒板簳瀹為檯鎬庝箞瀹氫箟鍏跺疄娌℃湁鍏崇郴錛屽彧瑕佷繚璇佸彧鏈変竴浣嶆槸1錛屽叾浣欐槸0灝卞彲浠ョ殑浜? 鍥犱負緙栫▼鐨勬椂鍊欑敤鐨勬槸甯擱噺鍊鹼紝娌℃湁浜鴻繖鏍風鍘葷洿鎺ョ敤鏁板肩殑)<br><br>//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><br>鍏跺疄錛屼綅榪愮畻榪樻湁寰堝鐢ㄥ銆傛瘮濡傜Щ浣嶇浉褰撲簬涔橀櫎2鐨勫箓鏁?涓嶈繃閫氬父緙栬瘧鍣ㄤ篃灝嗕箻闄?鐨勫箓鏁頒紭鍖栨垚姹囩紪鐨勭Щ浣嶆寚浠わ紝鎵浠ユ病鏈夊繀瑕佷笉瑕佽繖鏍峰崠寮勪簡銆傛眹緙栫殑縐諱綅鎸囦護鏈変袱緇勶紝鍒嗗埆閽堝鏈夌鍙峰拰鏃犵鍙風殑, 鎴戠寽鎯沖湪C\C++鐨勫悓涓縐諱綅榪愮畻閽堝鏈夌鍙鋒暣鏁板拰鏃犵鍙鋒暣鏁扮殑涓嶅悓錛屼細鏍規嵁鎯呭喌緙栬瘧鎴愪笉鍚岀殑姹囩紪縐諱綅鎸囦護錛屼笉榪囨病鏈夊幓璇佸疄), 鍏跺疄縐諱綅鏇寸敤寰楀鐨勫湴鏂規槸鍘繪瀯閫犱竴涓帺鐮? 姣斿涓婇潰鐨刴ask = (1<<5);<br><br>榪樻湁&榪愮畻錛屾湁鏃跺欏彲浠ョ敤鏉ユ眰浣欐暟銆傛瘮濡?nbsp;value & (1<<4 - 1) 榪欑浉褰撲簬灝唙alue鐨勯珮浣嶅叏鍙樻垚0浜嗭紝鏁堟灉絳変簬 value % 8. <br><br>榪樻湁鍊煎緱涓鎻愮殑鏄痎榪愮畻錛屽畠鏈変釜寰堢壒孌婄殑鎬ц川銆傛瘮濡?nbsp;A ^= B, 鍙樻垚鍙︿竴涓暟錛岃窡鐫鍐嶆墽琛孉 ^= B錛屽張鍙樺洖鍘熸潵鐨勬暟浜嗭紝涓嶄俊浣犲彲浠ュ垪鐪熷艱〃鎴栬呭寲綆閫昏緫寮忕湅鐪嬨傚氨鍥犱負榪欎釜鎬ц川錛宆鏈夊緢澶氱敤閫斻傛瘮濡傚姞瀵嗭紝浣犲皢鍘熸枃鐪嬫垚A, 鐢ㄥ悓涓涓狟寮傛垨涓嬈★紝灝辯浉褰撲簬鍔犲瘑錛岃窡鐫鍦ㄧ敤B寮傛垨涓嬈★紝鐩稿綋浜庤В瀵嗐備笉榪囪繖鏍鋒槸寰堝鏄撶牬瑙e氨鏄簡銆傝鏄竴涓狟涓嶅錛岃繕鍙互鍔犱釜C, 姣斿A ^= B, A ^= C, A ^= C, A ^= B, 鎭㈠鍘熺姸銆?br><br>涓嬮潰涓涓皬紼嬪簭錛岀敤寮傛垨浜ゆ崲涓や釜鏁板瓧銆?br>int x = 3;<br>int y = 4;<br><br>x ^= y;<br>y ^= x;<br>x ^= y;<br><br>鍏跺疄浣曟浜ゆ崲鏁板瓧錛岃繛浜ゆ崲瀵硅薄涔熷彲浠ョ殑<br>template <typename T><br>void swap(T& obj1, T& obj2)<br>{<br>        const int sizeOfObj = sizeof(T);<br>        char* pt1 = (char*)&obj1;<br>        char* pt2 = (char*)&obj2;<br><br>        for (size_t i=0; i<sizeOfObj; i++)<br>        {<br>                pt1[i] ^= pt2[i];<br>                pt2[i] ^= pt1[i];<br>                pt1[i] ^= pt2[i];<br>        }<br>}<br><br>榪樻湁寮傛垨鎿嶄綔榪樺彲浠ョ敤鍦ㄥ浘璞$殑鍏夋爡鎿嶄綔銆傛垜浠煡閬擄紝棰滆壊涔熸槸鐢ㄤ簩榪涘埗鏉ヨ〃紺虹殑錛屽棰滆壊榪涜涓嶅悓鐨勪綅榪愮畻錛屽氨鍙互寰楀埌涓嶅悓鐨勫厜鏍呫傚洜涓哄紓鎴栫殑鐗規畩鎬ц川錛屾垜浠敤寮傛垨鎿嶄綔鐨勫厜鏍呯敾浜嗗壇鍥撅紝璺熺潃鍐嶅湪鍘熸潵鐨勫湴鏂圭敾涓嬈★紝閭e壇鍥懼氨鍒烽櫎浜嗐傝繖鏍峰彲浠ョ敤鏉ユ樉紺哄姩鐢昏屼笉鐢ㄤ繚瀛樺師鏉ョ殑鐢誨儚淇℃伅銆備互鍓嶆垜鍐欒繃涓弻浜虹殑璐铔囷紝灝辯敤浜嗗紓鎴栧厜鏍呫傚洜涓鴻儗鏅壊鏄櫧鑹茬殑錛屼篃灝辨槸鍏?錛屼綔A ^ 1 = A, 鎵浠ョ敤鐢誨埛鐢諱竴嬈℃槸鐢諱簡璁懼畾鐨勯鑹詫紝鍐嶇敾涓嬈″氨鎭㈠銆傛渶鏈夎叮鐨勬槸涓よ泧鐩鎬氦鐨勬椂鍊欙紝棰滆壊涔熶細浣滃紓鎴栧彔鍔狅紝浜х敓涓縐嶆柊鐨勯鑹蹭簡錛岀寮鐨勬椂鍊欎篃浼氳嚜鍔ㄦ仮澶嶃?br>//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><br>濂藉暒錛屽闀夸簡錛屽氨鍋滄鍚с傚湪鏈鍚庡啀緇欏ぇ瀹朵竴孌典唬鐮侊紝鏄敤鏉ョ湅鐪嬪璞″湪鍐呭瓨涓殑浣嶅肩殑銆傚彲浠ョ湅鐪嬨?br>string bitsOfUChar(unsigned char c)<br>{<br>        const int numOfBitsInUChar = 8;<br>        unsigned int mask = (1<<7);<br>        string result(8, '0');<br><br>        for (size_t i=0; i<numOfBitsInUChar; i++)<br>        {<br>                if ( mask & c)<br>                        result[i] = '1';<br><br>                mask >>= 1;<br>        }<br><br>        return result;<br>}<br><br>template <typename T><br>string bitsInMemory(const T& obj)<br>{<br>        int sizeOfObj = sizeof(obj);<br>        unsigned char* pt = (unsigned char*)&obj;<br>        string result;<br><br>        for (size_t i=0; i<sizeOfObj; i++)<br>        {<br>                result += bitsOfUChar(pt[i]);<br>                result += ' ';<br>        }<br><br>        return result;<br>}<br><br>姣斿bitsInMemory(12)錛屼細杈撳嚭00001100 00000000 00000000 00000000, 鎴戝氨鐭ラ亾鎴戣嚜宸辯殑鏈哄櫒鏄皬灝鵑『搴忕殑浜嗐?br></p> <img src ="http://m.shnenglu.com/Walker/aggbug/80466.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/Walker/" target="_blank">婕鑰吤?鈥︹?錕?/a> 2009-04-19 20:44 <a href="http://m.shnenglu.com/Walker/articles/80466.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <a href="http://m.shnenglu.com/">青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品</a> <div style="position:fixed;left:-9000px;top:-9000px;"><font id="pjuwb"></font><button id="pjuwb"><pre id="pjuwb"></pre></button><sub id="pjuwb"></sub><tbody id="pjuwb"><var id="pjuwb"><address id="pjuwb"></address></var></tbody><listing id="pjuwb"><label id="pjuwb"><strong id="pjuwb"></strong></label></listing><wbr id="pjuwb"><small id="pjuwb"><tbody id="pjuwb"></tbody></small></wbr><ins id="pjuwb"><xmp id="pjuwb"></xmp></ins><style id="pjuwb"></style><label id="pjuwb"><em id="pjuwb"><li id="pjuwb"></li></em></label><samp id="pjuwb"></samp><menu id="pjuwb"><input id="pjuwb"></input></menu><pre id="pjuwb"><tbody id="pjuwb"><tfoot id="pjuwb"><button id="pjuwb"></button></tfoot></tbody></pre><form id="pjuwb"></form><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"><sup id="pjuwb"></sup></label></style></i><li id="pjuwb"><table id="pjuwb"><abbr id="pjuwb"></abbr></table></li><video id="pjuwb"></video><dfn id="pjuwb"></dfn><progress id="pjuwb"></progress><strong id="pjuwb"></strong><mark id="pjuwb"></mark><em id="pjuwb"></em><tbody id="pjuwb"><p id="pjuwb"><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike></p></tbody><option id="pjuwb"></option><strike id="pjuwb"></strike><u id="pjuwb"></u><td id="pjuwb"><center id="pjuwb"><tr id="pjuwb"></tr></center></td><em id="pjuwb"><mark id="pjuwb"><em id="pjuwb"><tt id="pjuwb"></tt></em></mark></em><strong id="pjuwb"></strong><wbr id="pjuwb"></wbr><s id="pjuwb"></s><strong id="pjuwb"></strong><legend id="pjuwb"></legend><nav id="pjuwb"></nav><dl id="pjuwb"><th id="pjuwb"><dl id="pjuwb"></dl></th></dl><noframes id="pjuwb"><ins id="pjuwb"></ins></noframes><font id="pjuwb"></font><strike id="pjuwb"><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"></label></style></i></strike><output id="pjuwb"></output><thead id="pjuwb"><pre id="pjuwb"></pre></thead><source id="pjuwb"></source><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem><pre id="pjuwb"><span id="pjuwb"><pre id="pjuwb"><big id="pjuwb"></big></pre></span></pre><cite id="pjuwb"><fieldset id="pjuwb"><s id="pjuwb"><rt id="pjuwb"></rt></s></fieldset></cite><big id="pjuwb"><progress id="pjuwb"><big id="pjuwb"></big></progress></big><samp id="pjuwb"><delect id="pjuwb"></delect></samp><dl id="pjuwb"></dl><strike id="pjuwb"><nav id="pjuwb"><dl id="pjuwb"><strong id="pjuwb"></strong></dl></nav></strike><tbody id="pjuwb"><b id="pjuwb"><optgroup id="pjuwb"><rp id="pjuwb"></rp></optgroup></b></tbody><em id="pjuwb"></em><xmp id="pjuwb"><blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote></xmp> <i id="pjuwb"><abbr id="pjuwb"><i id="pjuwb"><abbr id="pjuwb"></abbr></i></abbr></i><center id="pjuwb"><acronym id="pjuwb"><center id="pjuwb"></center></acronym></center><pre id="pjuwb"></pre><ul id="pjuwb"><thead id="pjuwb"></thead></ul><blockquote id="pjuwb"><pre id="pjuwb"><sup id="pjuwb"></sup></pre></blockquote><acronym id="pjuwb"></acronym><big id="pjuwb"><s id="pjuwb"></s></big><th id="pjuwb"></th><th id="pjuwb"></th><tbody id="pjuwb"></tbody><thead id="pjuwb"><strike id="pjuwb"></strike></thead><th id="pjuwb"><dl id="pjuwb"><wbr id="pjuwb"></wbr></dl></th><dl id="pjuwb"><strong id="pjuwb"></strong></dl><abbr id="pjuwb"><noframes id="pjuwb"><noscript id="pjuwb"></noscript></noframes></abbr><td id="pjuwb"><ol id="pjuwb"></ol></td><li id="pjuwb"><noscript id="pjuwb"><abbr id="pjuwb"></abbr></noscript></li><small id="pjuwb"><bdo id="pjuwb"><nav id="pjuwb"></nav></bdo></small><style id="pjuwb"></style><optgroup id="pjuwb"><table id="pjuwb"></table></optgroup><center id="pjuwb"><tr id="pjuwb"><dfn id="pjuwb"></dfn></tr></center><th id="pjuwb"></th><u id="pjuwb"></u><tfoot id="pjuwb"><legend id="pjuwb"><i id="pjuwb"></i></legend></tfoot><mark id="pjuwb"></mark><meter id="pjuwb"></meter><nav id="pjuwb"></nav><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><nobr id="pjuwb"></nobr><sub id="pjuwb"><th id="pjuwb"><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem></th></sub><thead id="pjuwb"><sub id="pjuwb"></sub></thead><ul id="pjuwb"><address id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></address></ul><dfn id="pjuwb"></dfn><pre id="pjuwb"></pre><input id="pjuwb"><cite id="pjuwb"><fieldset id="pjuwb"></fieldset></cite></input><u id="pjuwb"><form id="pjuwb"><u id="pjuwb"></u></form></u><kbd id="pjuwb"><em id="pjuwb"><mark id="pjuwb"></mark></em></kbd><tr id="pjuwb"></tr><del id="pjuwb"><form id="pjuwb"><address id="pjuwb"></address></form></del><tfoot id="pjuwb"><legend id="pjuwb"><ol id="pjuwb"><dl id="pjuwb"></dl></ol></legend></tfoot><menu id="pjuwb"><nobr id="pjuwb"><th id="pjuwb"><nobr id="pjuwb"></nobr></th></nobr></menu><fieldset id="pjuwb"></fieldset><pre id="pjuwb"><blockquote id="pjuwb"><samp id="pjuwb"></samp></blockquote></pre><xmp id="pjuwb"><sup id="pjuwb"><pre id="pjuwb"></pre></sup></xmp><span id="pjuwb"><progress id="pjuwb"></progress></span><font id="pjuwb"></font><var id="pjuwb"><abbr id="pjuwb"></abbr></var><strong id="pjuwb"><label id="pjuwb"><i id="pjuwb"><legend id="pjuwb"></legend></i></label></strong><tr id="pjuwb"><em id="pjuwb"><em id="pjuwb"><output id="pjuwb"></output></em></em></tr><thead id="pjuwb"><strike id="pjuwb"></strike></thead> <acronym id="pjuwb"></acronym><i id="pjuwb"></i><tt id="pjuwb"></tt><rt id="pjuwb"><source id="pjuwb"><rt id="pjuwb"></rt></source></rt><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike><del id="pjuwb"></del><font id="pjuwb"><output id="pjuwb"><ins id="pjuwb"><output id="pjuwb"></output></ins></output></font><kbd id="pjuwb"><tr id="pjuwb"><kbd id="pjuwb"></kbd></tr></kbd><pre id="pjuwb"><sup id="pjuwb"><delect id="pjuwb"><samp id="pjuwb"></samp></delect></sup></pre><samp id="pjuwb"></samp><track id="pjuwb"></track><tr id="pjuwb"></tr><center id="pjuwb"></center><fieldset id="pjuwb"></fieldset><i id="pjuwb"></i><td id="pjuwb"></td><rt id="pjuwb"></rt><object id="pjuwb"></object><pre id="pjuwb"><progress id="pjuwb"><sub id="pjuwb"><thead id="pjuwb"></thead></sub></progress></pre><kbd id="pjuwb"><tr id="pjuwb"><option id="pjuwb"></option></tr></kbd><output id="pjuwb"><ins id="pjuwb"></ins></output><ol id="pjuwb"></ol><source id="pjuwb"></source><strong id="pjuwb"></strong><ruby id="pjuwb"></ruby><sub id="pjuwb"><meter id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></meter></sub><pre id="pjuwb"></pre><center id="pjuwb"></center><tr id="pjuwb"><tbody id="pjuwb"><xmp id="pjuwb"><dd id="pjuwb"></dd></xmp></tbody></tr><video id="pjuwb"></video><pre id="pjuwb"></pre><form id="pjuwb"><optgroup id="pjuwb"></optgroup></form><samp id="pjuwb"></samp><kbd id="pjuwb"></kbd><strong id="pjuwb"><option id="pjuwb"></option></strong><object id="pjuwb"></object><abbr id="pjuwb"><noframes id="pjuwb"><abbr id="pjuwb"></abbr></noframes></abbr><ul id="pjuwb"><del id="pjuwb"><button id="pjuwb"><pre id="pjuwb"></pre></button></del></ul><abbr id="pjuwb"></abbr><strong id="pjuwb"><code id="pjuwb"><strong id="pjuwb"></strong></code></strong><option id="pjuwb"></option><optgroup id="pjuwb"><bdo id="pjuwb"><code id="pjuwb"></code></bdo></optgroup><mark id="pjuwb"><em id="pjuwb"><font id="pjuwb"></font></em></mark><acronym id="pjuwb"><code id="pjuwb"></code></acronym><dl id="pjuwb"></dl><em id="pjuwb"></em><object id="pjuwb"><input id="pjuwb"><object id="pjuwb"></object></input></object><output id="pjuwb"><dd id="pjuwb"></dd></output><option id="pjuwb"><button id="pjuwb"><option id="pjuwb"></option></button></option><small id="pjuwb"></small></div> <a href="http://wallypanel.com" target="_blank">亚洲激情精品</a>| <a href="http://aydsrmyy.com" target="_blank">亚洲黄一区二区三区</a>| <a href="http://www9ckk1.com" target="_blank">欧美成人黑人xx视频免费观看</a>| <a href="http://uu6623.com" target="_blank">两个人的视频www国产精品</a>| <a href="http://aass123.com" target="_blank">91久久嫩草影院一区二区</a>| <a href="http://cnxwlm.com" target="_blank">国产日韩欧美亚洲一区</a>| <a href="http://konwoosh.com" target="_blank">欧美精品激情在线</a>| <a href="http://shiselol.com" target="_blank">久久不射中文字幕</a>| <a href="http://www-4997.com" target="_blank">亚洲桃花岛网站</a>| <a href="http://1277k.com" target="_blank">在线观看免费视频综合</a>| <a href="http://nvpuow.com" target="_blank">欧美黄色免费网站</a>| <a href="http://www40255.com" target="_blank">久久艳片www.17c.com</a>| <a href="http://56x6.com" target="_blank">欧美中文字幕视频在线观看</a>| <a href="http://www47067.com" target="_blank">一本色道久久综合狠狠躁篇怎么玩</a>| <a href="http://hhh699.com" target="_blank">欧美激情一区二区三区高清视频</a>| <a href="http://caosee.com" target="_blank">一级成人国产</a>| <a href="http://laoyewo.com" target="_blank">日韩一区二区精品</a>| <a href="http://eee2244.com" target="_blank">亚洲肉体裸体xxxx137</a>| <a href="http://cca22.com" target="_blank">亚洲区一区二</a>| <a href="http://ccc982.com" target="_blank">一道本一区二区</a>| <a href="http://qimao360.com" target="_blank">亚洲一区国产</a>| <a href="http://895658.com" target="_blank">老色批av在线精品</a>| <a href="http://874805.com" target="_blank">亚洲精品综合久久中文字幕</a>| <a href="http://www-68689.com" target="_blank">亚洲欧洲一区二区三区久久</a>| <a href="http://0755hqr.com" target="_blank">亚洲第一页自拍</a>| <a href="http://www17bxbx.com" target="_blank">亚洲天堂免费观看</a>| <a href="http://montnove.com" target="_blank">欧美伊人久久大香线蕉综合69</a>| <a href="http://11867a.com" target="_blank">久久久国产精品一区二区三区</a>| <a href="http://527937.com" target="_blank">亚洲欧美国产77777</a>| <a href="http://649929.com" target="_blank">欧美一区二区三区播放老司机</a>| <a href="http://www559955.com" target="_blank">亚洲图片欧洲图片日韩av</a>| <a href="http://wwww76.com" target="_blank">午夜日韩激情</a>| <a href="http://by21999.com" target="_blank">欧美粗暴jizz性欧美20</a>| <a href="http://jlhao123.com" target="_blank">亚洲欧洲另类国产综合</a>| <a href="http://cmtqd.com" target="_blank">欧美视频免费看</a>| <a href="http://2220004.com" target="_blank">国产一区二区三区网站 </a>| <a href="http://exsecular.com" target="_blank">国产精品国产一区二区</a>| <a href="http://1397979.com" target="_blank">亚洲成人中文</a>| <a href="http://hnspygxjscyfwzx.com" target="_blank">亚洲性夜色噜噜噜7777</a>| <a href="http://xmt86.com" target="_blank">一区二区精品</a>| <a href="http://hzhzzz.com" target="_blank">日韩亚洲一区在线播放</a>| <a href="http://91chaopron.com" target="_blank">久久综合精品一区</a>| <a href="http://yishangsh.com" target="_blank">亚洲第一色在线</a>| <a href="http://vipaiqiyi.com" target="_blank">午夜久久美女</a>| <a href="http://921367.com" target="_blank">国产精品久久久久久久久久久久久久</a>| <a href="http://3644688.com" target="_blank">亚洲少妇自拍</a>| <a href="http://www39pao.com" target="_blank">欧美日韩在线一区</a>| <a href="http://hhsp13.com" target="_blank">亚洲国产精品久久久久秋霞蜜臀</a>| <a href="http://woshinannan741.com" target="_blank">亚洲精品一区二区三</a>| <a href="http://huokemima.com" target="_blank">久久国产精品一区二区三区四区</a>| <a href="http://ww323.com" target="_blank">欧美韩日亚洲</a>| <a href="http://138128.com" target="_blank">欧美 日韩 国产在线</a>| <a href="http://540669.com" target="_blank">国产欧美婷婷中文</a>| <a href="http://www51avav.com" target="_blank">99伊人成综合</a>| <a href="http://gzpurefaith.com" target="_blank">国产精品日本精品</a>| <a href="http://151545.com" target="_blank">一本色道久久综合一区</a>| <a href="http://www-44899.com" target="_blank">一区二区av在线</a>| <a href="http://56701sy.com" target="_blank">国产精品高潮视频</a>| <a href="http://whdzjc.com" target="_blank">国产精品99久久久久久www</a>| <a href="http://1588vip.com" target="_blank">亚洲精品1区2区</a>| <a href="http://666cmc.com" target="_blank">欧美国产日本在线</a>| <a href="http://01xxtv.com" target="_blank">一本色道久久综合亚洲精品婷婷 </a>| <a href="http://www-82622.com" target="_blank">国产精品青草综合久久久久99 </a>| <a href="http://www77577.com" target="_blank">午夜在线视频观看日韩17c</a>| <a href="http://www-49hk.com" target="_blank">亚洲视频一区在线观看</a>| <a href="http://66636by.com" target="_blank">国产日韩精品视频一区</a>| <a href="http://7777731.com" target="_blank">在线观看福利一区</a>| <a href="http://9931111.com" target="_blank">亚洲国产成人高清精品</a>| <a href="http://www-76577c.com" target="_blank">欧美绝品在线观看成人午夜影视</a>| <a href="http://689992.com" target="_blank">日韩一级黄色大片</a>| <a href="http://72966t.com" target="_blank">亚洲午夜在线视频</a>| <a href="http://979695.com" target="_blank">亚洲第一天堂av</a>| <a href="http://devmashup.com" target="_blank">亚洲视频中文</a>| <a href="http://91porn42.com" target="_blank">一区二区日韩伦理片</a>| <a href="http://nachang5117.com" target="_blank">亚洲一区二区高清视频</a>| <a href="http://18loutv.com" target="_blank">亚洲视频在线观看三级</a>| <a href="http://yyds16.com" target="_blank">悠悠资源网久久精品</a>| <a href="http://cao2014.com" target="_blank">一区二区三区视频在线</a>| <a href="http://edtxt.com" target="_blank">国产一区二区主播在线</a>| <a href="http://4430x.com" target="_blank">亚洲激情影视</a>| <a href="http://www-55655.com" target="_blank">国产啪精品视频</a>| <a href="http://710952.com" target="_blank">日韩一区二区高清</a>| <a href="http://www492002.com" target="_blank">99国产精品</a>| <a href="http://www72227.com" target="_blank">日韩视频亚洲视频</a>| <a href="http://saobitv.com" target="_blank">欧美一二三区精品</a>| <a href="http://yyypdq.com" target="_blank">亚洲中字在线</a>| <a href="http://dddd30.com" target="_blank">国产精品国产精品国产专区不蜜</a>| <a href="http://65kf.com" target="_blank">久久精品91</a>| <a href="http://www-37277.com" target="_blank">国产欧美一区二区精品性色</a>| <a href="http://korean-edu.com" target="_blank">99国产精品久久久久老师 </a>| <a href="http://599107.com" target="_blank">久久av最新网址</a>| <a href="http://hellomusiczone.com" target="_blank">在线亚洲自拍</a>| <a href="http://carboarm.com" target="_blank">欧美日韩在线免费视频</a>| <a href="http://ssss96.com" target="_blank">亚洲精品视频在线观看免费</a>| <a href="http://xianconnector.com" target="_blank">精品91免费</a>| <a href="http://junhuatesu.com" target="_blank">欧美二区乱c少妇</a>| <a href="http://kuaikan97.com" target="_blank">亚洲美女区一区</a>| <a href="http://xiaocao-av.com" target="_blank">亚洲欧美在线看</a>| <a href="http://hhh246.com" target="_blank">一区久久精品</a>| <a href="http://833077.com" target="_blank">国产精品99免费看</a>| <a href="http://rosi2030.com" target="_blank">欧美在线一区二区三区</a>| <a href="http://bixiuge.com" target="_blank">欧美成人午夜免费视在线看片</a>| <a href="http://jjoo4.com" target="_blank">亚洲精品在线一区二区</a>| <a href="http://aberyco.com" target="_blank">国产精品成人免费视频</a>| <a href="http://zuan3344.com" target="_blank">亚洲福利小视频</a>| <a href="http://xhtd688.com" target="_blank">性xx色xx综合久久久xx</a>| <a href="http://95gun.com" target="_blank">亚洲摸下面视频</a>| <a href="http://096577.com" target="_blank">国内精品99</a>| <a href="http://xxoo668.com" target="_blank">美女网站在线免费欧美精品</a>| <a href="http://bkf23.com" target="_blank">欧美刺激午夜性久久久久久久</a>| <a href="http://luqintang.com" target="_blank">亚洲美女中文字幕</a>| <a href="http://www47067.com" target="_blank">国产精品久久久久三级</a>| <a href="http://707377c.com" target="_blank">欧美在线观看网址综合</a>| <a href="http://xxxyyy168.com" target="_blank">亚洲激情亚洲</a>| <a href="http://hg4958.com" target="_blank">久久精品国产在热久久</a>| <a href="http://www433444.com" target="_blank">亚洲视频一区二区在线观看</a>| <a href="http://hhhtalk.com" target="_blank">欧美日韩免费看</a>| <a href="http://www-74987.com" target="_blank">久久黄色影院</a>| <a href="http://9911444.com" target="_blank">亚洲欧美日韩中文播放</a>| <a href="http://794579.com" target="_blank">欧美黄色免费网站</a>| <a href="http://mgcc37.com" target="_blank">欧美中文字幕第一页</a>| <a href="http://www47067.com" target="_blank">一区二区三区视频在线播放</a>| <a href="http://yiqiluntan.com" target="_blank">1769国内精品视频在线播放</a>| <a href="http://www672hh.com" target="_blank">国产片一区二区</a>| <a href="http://china-cvct.com" target="_blank">国产欧美日本一区二区三区</a>| <a href="http://nebnb89.com" target="_blank">欧美激情中文字幕乱码免费</a>| <a href="http://603445.com" target="_blank">欧美激情精品久久久久久蜜臀 </a>| <a href="http://4534com.com" target="_blank">另类激情亚洲</a>| <a href="http://89wbw.com" target="_blank">久久亚洲综合色</a>| <a href="http://725806.com" target="_blank">久久在线视频</a>| <a href="http://jiyixitong.com" target="_blank">欧美黄网免费在线观看</a>| <a href="http://www-188445.com" target="_blank">91久久精品一区二区别</a>| <a href="http://340996.com" target="_blank">一本色道久久综合亚洲精品按摩</a>| <a href="http://8868866.com" target="_blank">麻豆精品一区二区av白丝在线</a>| <a href="http://zytxkj.com" target="_blank">久久精品一二三区</a>| <a href="http://www-5888c.com" target="_blank">韩国一区电影</a>| <a href="http://www-36900.com" target="_blank">亚洲国产精品一区</a>| <a href="http://syddzs.com" target="_blank">一区二区三区www</a>| <a href="http://kedou09.com" target="_blank">亚洲欧洲视频在线</a>| <a href="http://xb989.com" target="_blank">久久久久久久综合狠狠综合</a>| <a href="http://yyyy456.com" target="_blank">亚洲日本欧美日韩高观看</a>| <a href="http://konwoosh.com" target="_blank">欧美大秀在线观看</a>| <a href="http://y4088.com" target="_blank">亚洲精品社区</a>| <a href="http://123hiba.com" target="_blank">欧美日韩国产在线</a>| <a href="http://5s5s5s.com" target="_blank">亚洲一区免费</a>| <a href="http://978769.com" target="_blank">亚洲福利专区</a>| <a href="http://papala4444.com" target="_blank">欧美全黄视频</a>| <a href="http://18mmcg.com" target="_blank">亚洲国产美女</a>| <a href="http://038226.com" target="_blank">久久综合综合久久综合</a>| <a href="http://430390.com" target="_blank">91久久久在线</a>| <a href="http://40346c.com" target="_blank">蜜臀av一级做a爰片久久</a>| <a href="http://k91cm.com" target="_blank">国产亚洲精品bv在线观看</a>| <a href="http://gzpurefaith.com" target="_blank">欧美丰满少妇xxxbbb</a>| <a href="http://958997.com" target="_blank">久久精品一本</a>| <a href="http://kanebocos.com" target="_blank">亚洲女人天堂av</a>| <a href="http://ckk755.com" target="_blank">亚洲欧美日韩国产另类专区</a>| <a href="http://54zcr.com" target="_blank">亚洲精品视频在线观看免费</a>| <a href="http://qq6699.com" target="_blank">久久视频这里只有精品</a>| <a href="http://9486322.com" target="_blank">欧美在线免费视屏</a>| <a href="http://hdsywang.com" target="_blank">亚洲国产天堂久久综合网</a>| <a href="http://666777v3.com" target="_blank">在线观看一区视频</a>| <a href="http://popowq.com" target="_blank">136国产福利精品导航网址应用 </a>| <a href="http://ynzhuoyi.com" target="_blank">老司机精品导航</a>| <a href="http://haole081.com" target="_blank">久久久蜜桃精品</a>| <a href="http://tristooges.com" target="_blank">久久久久国产一区二区三区四区</a>| <a href="http://muwendada.com" target="_blank">欧美一区二区高清在线观看</a>| <a href="http://www19898.com" target="_blank">亚洲综合色激情五月</a>| <a href="http://4379d.com" target="_blank">久久精品国产亚洲一区二区</a>| <a href="http://instantptt.com" target="_blank">亚洲一区二区三区久久</a>| <a href="http://91porn42.com" target="_blank">亚洲欧美日韩精品</a>| <a href="http://1515t.com" target="_blank">久久亚洲私人国产精品va</a>| <a href="http://01xxtv.com" target="_blank">久热re这里精品视频在线6</a>| <a href="http://7282789.com" target="_blank">欧美夫妇交换俱乐部在线观看</a>| <a href="http://6567ya.com" target="_blank">蜜桃久久精品一区二区</a>| <a href="http://132653.com" target="_blank">欧美激情第9页</a>| <a href="http://b871.com" target="_blank">一区二区三区视频免费在线观看</a>| <a href="http://wy77777.com" target="_blank">一区二区三区高清不卡</a>| <a href="http://432dm.com" target="_blank">亚洲午夜精品一区二区三区他趣 </a>| <a href="http://6633kj.com" target="_blank">亚洲视频久久</a>| <a href="http://yymh1056.com" target="_blank">亚洲欧美网站</a>| <a href="http://www-772773.com" target="_blank">欧美成人一区二区三区</a>| <a href="http://chaoxibg.com" target="_blank">亚洲欧美国产77777</a>| <a href="http://www134rr.com" target="_blank">欧美日韩精品欧美日韩精品</a>| <a href="http://hzjqkj.com" target="_blank">韩国av一区</a>| <a href="http://100736.com" target="_blank">亚洲影院免费观看</a>| <a href="http://www47067.com" target="_blank">欧美成人免费va影院高清</a>| <a href="http://dk13studio.com" target="_blank">亚洲人体1000</a>| <a href="http://snis675.com" target="_blank">欧美成人视屏</a>| <a href="http://551753.com" target="_blank">久久综合五月天婷婷伊人</a>| <a href="http://428820.com" target="_blank">国产精品久久久久三级</a>| <a href="http://simextec.com" target="_blank">亚洲高清视频一区</a>| <a href="http://5917t.com" target="_blank">一区二区精品</a>| <a href="http://www5123ri.com" target="_blank">欧美 日韩 国产 一区</a>| <a href="http://sdjinchuan.com" target="_blank">日韩午夜中文字幕</a>| <a href="http://sdxinqi.com" target="_blank">亚洲视频在线观看免费</a>| <a href="http://www-49hk.com" target="_blank">亚洲国产精品久久久久秋霞蜜臀</a>| <a href="http://777177c.com" target="_blank">狠狠干成人综合网</a>| <a href="http://maiiyou.com" target="_blank">一本大道久久a久久综合婷婷</a>| <a href="http://aabbcc11.com" target="_blank">欧美黑人国产人伦爽爽爽</a>| <a href="http://ooonefteprompellets.com" target="_blank">久久久久国产免费免费</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>