• Home
  • Tag
  • LocationLog
  • Guestbook
  • Admin
  • Write
블로그 이미지

감사합니다.

안녕1999

카테고리

전체 (3067)
자바스크립트 (20)
안드로이드 (14)
WebGL (4)
변비 (17)
정치,경제 (35)
C언어,ARM (162)
컴퓨터(PC, Note Book, 윈.. (41)
전자회로, PCB (27)
유머,안웃긴,GIF,동영상 (118)
국부론60 (71)
모듈(PCB) (3)
건강 (2)
FreeCAD (25)
PADS (43)
퇴직,퇴사,구직,취업 활동 (3)
C# (86)
엑셀 (8)
워드 (0)
LabView (6)
레고 (30)
FPGA (0)
Total
Today
Yesterday
Tistory 로고 이미지 티스토리 가입하기!
태그 : 지역로그
방명록 : 관리자 : 글쓰기
Blog is powered
by Daum /
Designed by Tistory
RSS FEED

달력

« » 2025.5
일 월 화 수 목 금 토
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

공지사항

태그목록

  • 개발
  • 대통령
  • 개선
  • 윈도우
  • 공무원
  • 문재인
  • GCC
  • 갤럭시
  • 비교
  • 매실
  • 어린이
  • 제천
  • arm
  • 옥션
  • 에러
  • 광고
  • 정부
  • 맛집
  • 문제
  • 프로그램
  • pcb
  • C
  • 자바스크립트
  • 레고
  • 경제
  • 이유
  • 핸드폰
  • 안드로이드
  • 방법
  • XP

최근에 올라온 글

'코딩'에 해당되는 글 2건

  1. 2017.01.22 C언어 - 안전한 코딩 방법
  2. 2016.07.16 C언어 컴파일 속도를 빠르게하는 방법

C언어 - 안전한 코딩 방법

C언어,ARM / 2017. 1. 22. 23:30

CERT-C : c, c++ , Java, android  등에 대한 권고 사항

MISRA-C : 자동차, 항공, 우주 통신 분야

JSF c++ standard : 전투기, 폭격기 등 미영 항공기 


C언어는 코딩방법에 따라, 컴파일러마다 다른 결과가 나올 수 있다.(코드 작성의 모호성)
이를 사전에 방지하기위한 지침서 이다.

행정자치부

시큐어코딩가이드(C, Java)

작성일 : 2014-05-27 작성자 : 정보기반보호과 / 최은주 / 2100-3969 조회수 : 31571
SW를 개발하실때 참조하실 수 있는 시큐어코딩(SW개발보안) 언어별 가이드입니다.
첨부파일
  • 첨부파일 C_시큐어코딩_가이드.pdf [3.9 MB]
  • 첨부파일 JAVA_시큐어코딩_가이드.pdf [5.4 MB]





MISRA-C:2004 Guidelines for the use of the C language in critical systems

관련 자료는 유료이다.

ISO/IEC 9899:TC2


안전한 C 프로그램을 위한 코딩 표준 


201106 OWASP 시큐어코딩규칙 참고 가이드.pdf



 "MISRA-C"의 초판, "Guidelines for the use of the C language in vehicle based software"은 1998년에 출간되었으며, 공식적으로 MISRA-C:1998 로 알려져 있다.

Misra c - 위키백과, 우리 모두의 백과사전

https://ko.wikipedia.org/wiki/Misra_c
사용자 의견
이 결과에 관한 정보 • 

Misra c - 위키백과, 우리 모두의 백과사전

https://ko.wikipedia.org/wiki/Misra_c
"MISRA-C" 는 MISRA(Motor Industry Software Reliability Association)에서 개발된 C 프로그래밍에 대한 개발 표준이다. "MISRA-C"의 목적은 ISO C 언어로 작성된 ...

MISRA C - Wikipedia

https://en.wikipedia.org/wiki/MISRA_C
이 페이지 번역하기
MISRA C is a set of software development guidelines for the C programming language developed by MISRA Its aims are to facilitate code safety, security, ...

MISRA-C : 안전한 C 프로그래밍의 코딩 표준 - Wisedog's Lifelog

story.wisedog.net/misra-c-안전한-c-프로그래밍의-코딩-표준/
2013. 9. 10. - 안전한 C 프로그래밍의 코딩 표준인 MISRA-C 에 대한 글입니다. 안전하고 신뢰성있는 C프로그램을 개발하기 위한 프로그래밍 규칙을 정의한 코딩 ...

MISRA-C를 이용한 안전한 코드 작성 - TRACE32

trace32.com/wiki/index.php/MISRA-C를_이용한_안전한_코드_작성
2016. 1. 4. - MISRA-C가 제안된 목적은 C 언어의 모호성으로부터 비롯됩니다. C 언어는 표준을 기반으로 컴파일러가 제작됩니다. 그런데, 이 표준에는 모호한 ...

MISRA - The Motor Industry Software Reliability Association

https://www.misra.org.uk/
이 페이지 번역하기
Gives assistance in applying, developing safe, reliable software embedded in vehicle control systems. Home of MISRA C guidelines, to be adopted by whole ...

MISRA C++

https://www.misra.org.uk/?TabId=171
이 페이지 번역하기
In the beginning "C" was considered unsuitable for safety critical and safety related systems, however, it was so used ... In 1998, as a response to this situation, ...

MISRA C:2012

www.misra.org.uk/MC2012
이 페이지 번역하기
2013. 3. 22. - MISRA is very pleased to announce today that the next edition of MISRA C Guidelines for the use of the C language in critical systems, to be ...

MISRA Web site > Publications

https://www.misra.org.uk/Publications/.../Default.asp...
이 페이지 번역하기
MISRA C:2012 Addendum 2(으)로 이동 - MISRA C:2012 - Addendum 2: Coverage of MISRA C:2012 against ISO/IEC TS 17961:2013 "C Secure", ISBN ...

[PDF]MISRA-C:2004 - Guidelines for the use of the C language in critical ...

caxapa.ru/thumbs/468328/misra-c-2004.pdf
이 페이지 번역하기
“MISRA”, “MISRA C” and the triangle logo are registered trademarks of MIRA ... In presenting MISRA-C:2004, we have attempted to refine the document in a ...

[PDF]PRQA, MISRA C 지원 독보적 툴 벤더 - MDS테크놀로지

www.mdstec.com/.../MISRA%20C_PRQA_Frank_Automotive_130710....
MISRA C는 포드와 로버가 협력해. 탄생시켰습니다. 이들은 소프트웨어의 공통 규. 칙을 준수하고 코드를 공유하는 것을 목표로. 코딩 표준을 만들었습니다. MISRA C ...



검색결과

[PDF]ISO/IEC 9899 - Programming languages - C - Open-std.org

www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf
WG14/N1124. Committee Draft — May 6, 2005. ISO/IEC 9899:TC2. 6.10.7 Null directive . . . . . . . . . . . . . . . . . . . . 160. 6.10.8 Predefined macro names.

ISO/IEC 9899:1990 - Programming languages -- C

www.iso.org/cate/d17782.html
이 페이지 번역하기
2011. 12. 5. - ISO/IEC 9899:1990.. Subscribe to updates ... Status: Withdrawn, Stage: 95.99 (1999-12-16). TC/SC: ISO/IEC JTC 1/SC 22, Number of Pages: ...

[PDF]ISO/IEC 9899:1999(E) -- Programming Languages -- C

www.dii.uchile.cl/~daespino/files/Iso_C_1999_definition.pdf
ISO/IEC 9899:1990, as amended and corrected by. ISO/IEC 9899/COR1:1994,. ISO/IEC 9899/AMD1:1995, and. ISO/IEC 9899/COR2:1996. Major changes from ...

C99 - 위키백과, 우리 모두의 백과사전

https://ko.wikipedia.org/wiki/C99
C99는 C 언어의 현대 개정판이자, C 언어 표준의 과거판인 ISO/IEC 9899:1999의 비공식 이름이다. 목차. [숨기기]. 1 역사; 2 새로운 기능; 3 C90과의 하위 호환성 ...

The Standard - C

www.iso-9899.info/wiki/The_Standard
이 페이지 번역하기
2016. 8. 30. - The current revision is ISO/IEC 9899:2011 -- also called C11 and until ... (aka C89),ISO/IEC 9899:1990 (aka C90), ISO/IEC 9899:1990/AMD ...

[PDF]C90 (ISO 9899:90) - Coding Guidelines

www.coding-guidelines.com/cbook/c90c++.pdf
A Economic 저술 - ‎2002 - ‎관련 학술자료
2005. 8. 5. - C90 was the first version of the C Standard, known as ISO/IEC 9899:1990(E) (Ritchie[3] gives a history of prestandard development). It has now ...


저작자표시 비영리 변경금지

'C언어,ARM' 카테고리의 다른 글

warning missing prototypes, missing declarations  (0) 2019.04.27
warning: function declaration isn't a prototype  (0) 2019.04.27
C언어 - 컴파일러 코드 최적화 방법 분석  (0) 2017.01.21
gcc 컴파일러 옵션 -iprefix  (0) 2017.01.14
__INT_LEAST8_TYPE__ __INT_FAST8_TYPE__  (0) 2017.01.14
Posted by 안녕1999
, |

C언어 컴파일 속도를 빠르게하는 방법

C언어,ARM / 2016. 7. 16. 23:30

void main()

{

int a;

int b;

int c;


a=1;

b=1;

c=a+b;

...

}


위와 같은 코드가 있을때,

컴파일 속도에 영향을 미치는 요인은 어떤것들이 있을까요?


눈에는 보이지 않지만, 문장의 끝에는 \r\n 2개의 문자가 들어 있습니다.

그리고 앞에는 Tab문자가 들어 있습니다.

컴파일러는 1문자당 1바퀴 루프를 돌게 되는게 일반적입니다.

루프문 1바퀴를 돌려면, 여러가지 조건이 있고, 이 조건을 포함해서 돌게되면,

최소 몇 클럭은 필요합니다.

1문자 때문에 최소 몇클럭씩 낭비가 되는것입니다.


위 코드를 아래와 같이 바꾼다면,


void main()

{

int a,b,c;


a=1;

b=1;

c=a+b;

...

}


개행문자(\r\n) 4문자와 "int " 2개, Tab 2개가 없어졌으니,

총 4+4+4+2=14문자가 사라졌습니다.

컴파일러는 14문자만큼의 루프를 덜 돌아도 되며, CPU클럭으로 따지면, 

1문자당 3클럭으로 계산해도, 최소 42클럭이상 빨라진것입니다.

또한 소스코드를 로딩할때도 이미 소모된 클럭이 있으므로, +@로 처리시간이 단축됩니다.


여기서 조금 더 나아가면,

- 변수명을 짧게

- 불필요한 공백을 사용안함


하면 +@의 효과를 얻을 수 있습니다.

물론, 코드의 가독성은 떨어집니다.

적당히 줄이세요.


"그거 줄여봐야 얼마나 되겠어?"

"요즘 CPU가 얼마나 빠른데?"


하시겠지만, 이런 수천 라인의 소스파일, 수천개를, 컴파일하게되면, 분명히 시간차이가 발생합니다.


또한, 파일에 저장하기위한 공간도 줄어듦니다.


무리하게 할 필요는 없고, 지금부터라도, 불필요한 공백은 자제합시다.



요약 : 불필요한 중복된 문자(동일한 변수형 반복), 불필요한 개행문자, 긴 변수명은 자제하자.





우스개 소리로, 예전에 마이크로 소프트사와 유닉스 진영에서 개행문자(\r\n)에 대한 논의(?)가 있었습니다.

유닉스진영에서는 개행문자가 \n 1바이트입니다만, 마이크로 소프으 윈도우에서는 \r\n 2바이트입니다.


컴퓨터에 있는 파일의 적지않은 용량의 파일이 택스트 문서이고,

해당 문서에서 개행문자때문에 소모되는 공간도 무시할 수 없다는 것입니다.

지구상의 모든 컴퓨터의 하드디스크에서 무시할 수 없는 공간이 낭비된다는 것입니다.

하드디스크 공간이 비약적으로 늘어나서, 그 피해가 너무 작을뿐, 낭비되는것은 맞습니다.


마이크로 소프트사에서는 이 문제 때문에, \r\n을 \n 으로 바꾸려는 시도를 하기도 했었습니다만, 엑셀, 비쥬얼베이직 같은 프로그램에서 문제가 발생하여, 중단한것으로 알고 있습니다.


유니코드문자를 사용하는 요즘에는 2배로 낭비되고 있습니다. ㅎㅎ

저작자표시 비영리 변경금지

'C언어,ARM' 카테고리의 다른 글

gcc include 디렉토리  (0) 2016.08.30
하드웨어는 점점 빨라졌지만, 소프트웨어는 오히려 점점 느려졌다  (0) 2016.08.16
strlen() 같은 기본 함수도 SIMD 명령으로 최적화할 수 있을까?  (0) 2016.06.02
SSE SIMD link  (0) 2016.05.03
VC++ 6.0을 쓰지 말아야하는 이유  (4) 2016.05.03
Posted by 안녕1999
, |
«이전 1 다음»

최근에 달린 댓글

글 보관함

링크

티스토리툴바