편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2021.12.28

    c언어에서 #ifndef IN #define IN 은 왜 사용하는 건가요?


    <헤더파일>

    #ifndef OUT
    #define OUT
    #endif
    
    #ifndef IN
    #define IN
    #endif
    

    <소스 중>

    //*********************************************************************************************************************************
    // o SHA256_Process()   : 임의의 길이를 가지는 입력 메시지를 512 비트 블록 단위로 나누어 압축함수를 호출하는 함수
    // o 입력             : Info       - SHA-256 구조체의 포인터 변수
    //                        pszMessage - 입력 메시지의 포인터 변수
    //                        uDataLen   - 입력 메시지의 바이트 길이
    // o 출력             : 
    //*********************************************************************************************************************************
    void SHA256_Process( OUT SHA256_INFO *Info, IN const BYTE *pszMessage, IN UINT uDataLen ) 
    {
        if ((Info->uLowLength += (uDataLen << 3)) < 0)
            Info->uHighLength++;
    
        Info->uHighLength += (uDataLen >> 29);
    
        while (uDataLen >= SHA256_DIGEST_BLOCKLEN)
        {
            memcpy((UCHAR_PTR)Info->szBuffer, pszMessage, (SINT)SHA256_DIGEST_BLOCKLEN);
            SHA256_Transform((ULONG_PTR)Info->szBuffer, Info->uChainVar);
            pszMessage += SHA256_DIGEST_BLOCKLEN;
            uDataLen -= SHA256_DIGEST_BLOCKLEN;
        }
    
        memcpy((UCHAR_PTR)Info->szBuffer, pszMessage, uDataLen);
    }
    

    보면 함수의 입력 부분에서 ...( OUT SHA256_INFO * INFO, ..) 이렇게 입력을 받는데요 미리 정의한 구조체 변수 *Info를 넣는건 지금까지 그래왔으니 알겠는데, 뒤에 OUT가 어떤 의미로 붙는건지를 모르겠어요

  • 프로필 ohsangyun님의 편집
    날짜2019.09.15

    c언어에서 #ifndef IN #define IN 은 왜 사용하는 건가요?


    <헤더파일>

    #ifndef OUT
    #define OUT
    #endif
    
    #ifndef IN
    #define IN
    #endif
    

    <소스 중>

    //*********************************************************************************************************************************
    // o SHA256_Process()   : 임의의 길이를 가지는 입력 메시지를 512 비트 블록 단위로 나누어 압축함수를 호출하는 함수
    // o 입력             : Info       - SHA-256 구조체의 포인터 변수
    //                        pszMessage - 입력 메시지의 포인터 변수
    //                        uDataLen   - 입력 메시지의 바이트 길이
    // o 출력             : 
    //*********************************************************************************************************************************
    void SHA256_Process( OUT SHA256_INFO *Info, IN const BYTE *pszMessage, IN UINT uDataLen ) 
    {
        if ((Info->uLowLength += (uDataLen << 3)) < 0)
            Info->uHighLength++;
    
        Info->uHighLength += (uDataLen >> 29);
    
        while (uDataLen >= SHA256_DIGEST_BLOCKLEN)
        {
            memcpy((UCHAR_PTR)Info->szBuffer, pszMessage, (SINT)SHA256_DIGEST_BLOCKLEN);
            SHA256_Transform((ULONG_PTR)Info->szBuffer, Info->uChainVar);
            pszMessage += SHA256_DIGEST_BLOCKLEN;
            uDataLen -= SHA256_DIGEST_BLOCKLEN;
        }
    
        memcpy((UCHAR_PTR)Info->szBuffer, pszMessage, uDataLen);
    }
    

    보면 함수의 입력 부분에서 ...( OUT SHA256_INFO * INFO, ..) 이렇게 입력을 받는데요 미리 정의한 구조체 변수 *Info를 넣는건 지금까지 그래왔으니 알겠는데, 뒤에 OUT가 어떤 의미로 붙는건지를 모르겠어요