C언어 구조체 정의인데... 오류가 뭔지 잘 모르겠습니다.

seojh1431의 이미지

typedef struct
{
UINT4 state[4]; /* state (ABCD) */
UINT4 count[2]; /* number of bits, modulo 2^64 (lsb first) */
unsigned char buffer[64]; /* input buffer */
}MD5_CTX;

이 구조체가 재정의라고 오류가 뜨는데 두번 정의한적이 없거든요. 첨부파일 올릴게요. 오류좀 봐주세요..

File attachments: 
첨부파일 크기
Package icon encryption.zip8.75 KB
yhsuk의 이미지

main.c에서 md5.h, md5.c를 모두 include해서 그렇습니다.
md5.c는 md5.h를 include하므로, main에서 md5.h를 두 번 include 한 거와 마찬가지가 됩니다.

소스파일(*.c)에서는 헤더파일(*.h)만 include해야 합니다.
md5.c를 컴파일한 오브젝트 파일을 링킹시키면 되구요.

이 문제와는 별개로 헤더파일도 다른 헤더파일을 include할 수 있으므로 여전히 중복 문제가 발생합니다.
보통은 C나 C++의 경우 헤더파일을 아래와 같이 전처리문으로 감싸 중복을 방지합니다.

#ifndef MD5_H__
#define MD5_H__

내용...

#endif

Signature :) - "여유를 갖고 행동하되 게을러지지 말자"

seojh1431의 이미지

오류를 찾았습니다^^

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.