�༭�ƽ�: |
����������csdn�����ľ�ƕ��ʽ��������ϵͳ������,��θ��õ�����ϵͳ��դ,�դ�������ż����������ۣ�ϣ��������ѧϰ���������� |
|
1 ����
ƕ��ʽϵͳ��ָ���һ�ֻ����ض����ܵļ����ϵͳ,�����զ����̶ȸ�,��ӧ�ٶȿ���ŵ�,ŀǰ�ѹ㷺ӧ�������ѵ���,��ҵ���ƶ�����.ƕ��ʽϵͳ����ʹ�õ�ӳ���լ����л���������,�dz�ע�ش����ʱ��Ϳռ�ч��,���ѡ��һ�ֺ��ʵŀ�������ʮ����ҫ.ŀǰ,��ƕ��ʽϵͳ�����п�ʹ�õ����ժܶ�,����
c����ӧ�õ���㷺.��ȼ�� c ���ա�̾��������ŵ�,������ƕ��ʽϵͳ��c���ժͱ� c�������кܴ�����.�������ҽ��ƕ��ʽϵͳ���ص���լ���һщ����,�����ڳ�������д����ż���һщс����.
2 ƕ��ʽc���ե��ص�
��ϊһ�ֽṹ�������������,c ���լ�˶��ָ����ե��ص�,���к�ǿ�ĺ����ժͿ���ֲ��.����ƕ��ʽϵͳ������,���ڶեͼ۲�ʒ������,ϵͳ�ļ��������ʹ洢�������dz�����,���������ú���щ��դ���ե�ʮ����ҫ.������աӧע��ƕ��ʽ
c���ժͱ� c ���ե�����,�������ɴ��볤��,��߳���ִ��ч��,�ڳ�������жդ�������ż�.
3 c�����ڳ����е��ż�
���ڵ� c ���������զ��դ�������ż�,����щ�ż��ƕ�ִ���ٶⱥʹ��볤�ȵ�ƽ��.���ҫ��ø�с��ִ��ч�ʸ��ߵĵ���,��ҫ����ա�ֹ��դ�������ż�.
4 �������͵ķ���
��ͬ���������������ɵļ������볤�����ܶ�,��������ѡȡ�ķ�χխс�����ٶ�խ��,ռ�õ��ڴ�խ��.�ܹ�ʹ���ַ���(char)����ı���,�ͳ�ҫʹ������(int)����������;�ܹ�ʹ�����ͱ�������ı����ͳ�ҫ�ó�����(long
int),�ܲ�ʹ�ø�����(float)�����ͳ�ҫʹ�ø����ͱ���.��ͬ���͵���������,�����ŷի������볤��ҳ��ӱ��.�������ӧ����ʵ����ҫ������ѡ����������.��ȼ,�ڶ��������ҫ�������������÷�χ,������������ķ�χ��ֵ,c��������������,���������н��ȴ����,���������ĵ�����ѷ���.
5 �㷨�ż�
�㷨�ż�ָ�գ���ʱ�ո��ӷȵ��ż�:�� pc ���ͻ��г������ʱһ�㲻�ع����ע�������ij���,ֻ�迼�ǹ��ܵ�ʵ��,��ƕ��ʽϵͳ�ͱ��뿼��ϵͳ��ӳ����դ,�ڳ������ʱ,ӧ�����������ɴ���̵��㷨,�ڲ�ӱ�������ʵ�ֵ�������ż��㷨.
6 �ʵ���ʹ�ú�
�� c������ʹ�ú���������߳����ִ��ч��.����뱾�����ǻ���.��ʹ����������.��������ҫʹ��ϵͳ��ջ����������,ͬʱ
cpu �ں�������ʱ��ҫ����ͻָ���ǰ���ֳ�,���н�ջ�ͳ�ջ����,���ժ�������ҳ��ҫ cpuʱ��.���궨���û���������:�궨�������ϊԤ��д�õĵ���ƕ�뵽��ǰ������,��������������,��ռ�õľ�����һщ�ռ�,ʡȥ�˲���ѹջ,���ɻ�����ե�
call ����,���ز���,ִ�� return�ȹ���,�ӷ�����˳����ִ���ٶ�.��ȼ���ƻ��˳���ŀɶ���,ʹ�ŵ������鷳,������ƕ��ʽϵͳ,ϊ�˴ﵽҫ�������,ƕ����볣���dz��������.
����,���ǻ�ҫ���ⲻ��ҫ�ĺ�������,�뿴����ĵ���:
void str_print( char *str )
{
int i;
for ( i = 0; i < strlen ( str ); i )
{
printf("%c",str[ i ] );
}
}
void str_print1 ( char *str )
{
int len;
len = strlen ( str );
for ( i = 0; i < len; i )
{
printf("%c",str[ i ] );
}
}
|
��ע��,�����������ĺ�������.ȼ��,��һ����������strlen�������,���ڶ�������ֻ���ú���strlenһ��.��˵ڶ��������������աȵ�һ����.
7 ��ƕ���
�����ж�ʱ��ҫ����̵ij��ֿ�������ƕ�������д,�դ����ٶ��ϵ��������.����,�����ͳ��ի�������һ������ĺ���,�������ѹ�����ʱ��,���ҫ����ѡ��ҫ�û��ij���.�ڳ�����,����һ��80-20ԭ��,��20%�ij���������80%������ʱ��,�������ҫ�ľ�ч��,����ҫ�ǿ��ǹľ���20%�ĵ���.
8 ���ѭ�����ե�ч��
�� c ������ѭ�����ʹ��ƶ��,���ѭ����ч�ʵļ����취���ǽ���ѭ����ĸ�����:
(1)�ڶ���ѭ����,ӧ�����ѭ���������ڲ�,��̵�ѭ�����������.�������լ���
cpu����ѭ���ĵ���.���� 1-1 ��ч�ʱ� 1-2 ��ч��ҫ��:
for (j = 0; j < 30; j )
{
for (i = 0; i < 10; i )
{
... ...
}
} // ���� 1-1
for (i = 0; i < 10; i )
{
for (j = 0; j < 30; j )
{
... ...
}
} // ���� 1-2 |
�� 1-1��ѭ�������,ч�ʵ�;�� 1-2��ѭ�����ڲ�,ч�ʸ�.
(2) ���ѭ�����������ж�,����ѭ��������,ӧ��ѭ���ж��ƶ�ѭ������.����
2-1���� 2-2 ��ִ���� k-1 ���ж�,��������ǰ��ƶ�������ж�,�����ѭ��"��ˮ��"��ҵ,ʹ�ñ��������ܶ�ѭ�������ż�����,������ч��
for (i = 0; i
< 10000; i )
{
if (����)
���;
else
���;
} // ���� 2-1 �����൫ч�ʵ�
if (����)
{
for (i = 0; i < 10000; i )
���;
}
else
{
for (i = 0; i < 10000; i )
���;
} // ���� 2-2 ����൫ч�ʸ�
|
9 ��� switch ����ч��
switch ����� c �����г��õ�ѡ�����, �ڱ���ʱ�����if-
else- if ƕ�״���,������˳����бƚ�,����ƥ��ʱ,����ת���������������ִ��.
�� switch ����е� case ��źܶ�ʱ,ϊ�˼��ٱƚϵĵ���,���ѷ���ƶ����ըߵ������ŵ���һλ���߰�����
switch ���ת��ƕ�� switch ���.�ѷ���ƶ�ʸߵ� case ��ŷ��������� switch
�����,�������ƶ����ե͵� case ��ŷ�������� switch �����.���� 3 ��,�ѷ����ʸߵ�case
��ŷ������� switch �����,�ѷ���ƶ�ʵ͵ķ���ȱʡ ��(default)�ڲ� switch
�����
switch (����ʽ)
{
case ֵ1:
���1: break;
case ֵ2��
���2��break;
... ...
/*�ѷ���ƶ�ʵ͵ķ����ڲ��switch�����*/
default:
switch (����ʽ)
{
case ֵn:
���n: break;
case ֵm:
���m: break;
... ...
}
}
|
����3 ʹ��ƕ��switch�����߳���ִ��ч��.
10 ����ʹ�ñ���
ʹ�� c���ա�����լӿ쿪������,�����ڱ�����ҫ�跨�����û����п������������,���ժܶ�������ܴ�.��������е�
sprintf�����dz���.����ӵ�ĵ������кܴ�һ�������ڴ���������,��������в���ҫ��ʽ��������ֵ(
��%f),���������ա�Ϳ��ը���ʵ������������ĵ���ʵ���������.
11 ������ѧ�����ż�����
��ѧ�ǽ����֮ĸ,û����ѧ�����ݺͻ���,��û�м�����ķ�չ,�����ڱ�д�����ʱ��,����һщ��ѧ������գ����ִ��ч���������������.��ʱ��������ⳣ������һ���,
����û�о���ij���ա��˵�������.����:�� 1~100 �ĺ�
sum = 100*(100 1)/2; ��ѧ��ʽ. (a1 an)*n/2
ʹ��c���ե�λ�������լ��ٳ�����ȡģ������.�ڼ�������������ݵ�λ�ǿ��բ�������с���ݵ�λ,�����ͽ����á�λ���㡱��������е�����ͳ���.���,����λ����������ч����߳������е�ч��.��������λ�������������:����:128
/ 8 ->> 128 >> 3;
�ż��㷨�����ݽṹ����ߴ����ч���кܴ�i���.��ȼ��ʱ��ʱ��ч�ʺͿռ�ч���ƕ�����,��ʱӧ�����ĸ�����ҫ,
�����ʵ�������.����,�ڽ����ż���ʱ��ҫƭ�������յĵ���,��ϊ���յĵ��벢���ܲ�����ч�ʵļ�����.
12 �洢������
���ڳɱ�����,ƕ��ʽϵͳ�洢����������.���������еı���,�����ŀ⺯���լ���ջ�ȶ�ʹ�������ڴ�:ȫ�ֱ�������������χ�ڶ���ч.����ִ�����ż��ͷ�;��̬���������÷�χҳ����������,ֻ�оֲ������еķ�̬�����ں���ִ�������ͷ�.���,
�ڳ�����ӧ����ʹ�þֲ�����,����ڴ�ʹ��ч��.�����жѵĵ�с����������ȫ�����ݺ�ջ�ռ䶼������ʣ����,�����̫с,�����ܹ�����ҫ��ʱ������ڴ�.�����ʹ��
malloc ���������ڴ�֮��һ��ҫ�� free ���������ͷ�, ��ֹ�ڴ�й¶.
13ѡ��õ�����ѭ��
�ڱ����,���dz�����ҫ�õ�����ѭ��,���õ����ַ�����while (1) �� for (;;).�����ַ���ч����ȫһ��,����һ�ָ�����?ȼ���ǿ������dz����ĵ���:
����ǰ��
while (1)��
�����
mov eax��1
test eax��eax
je foo 23h
jmp foo 18h
����ǰ��
for (;;)��
�����
jmp foo 23h
��ȼ��for (;;)ָ����,��ռ�üĵ���,����û���ж�,��ת,��while (1)��.
14 ʹ��memoization,�ա���ݹ��ظ�����
����fibonacci(쳲�����)����,fibonacci�����ǿ���ͨ���ĵݹ鷽�������:
int fib ( n )
{
if ( n == 0 || n == 1 )
{
return 1;
}
else
{
return fib( n - 2 ) fib ( n - 1 );
}
}
|
ע:������,���ǿ���fibonacci ϵ�д�1��ʼ,���,��ϵ�п�����:1��1��2��3��5��8����

ע��:�ӵݹ���,���ǽ���fib(3)����2��,fib(2)����3��.������ͬ�������ظ�����.���n�dz���,fib������ч�ʻ�ƚϵ�.memoization��һ���ļ���,���ա����ڵݹ�,��ǿ�����ٶ�.fibonacci
����memoization�ĵ�������:
int calc_fib
( int n )
{
int val[ n ] , i;
for ( i = 0; i <=n; i )
{
val[ i ] = -1; // value of the first n 1 terms
of the fibonacci terms set to -1
}
val[ 0 ] = 1; // value of fib ( 0 ) is set to
1
val[ 1 ] = 1; // value of fib ( 1 ) is set to
1
return fib( n , val );
}
int fib( int n , int* value )
{
if ( value[ n ] != -1 )
{
return value[ n ]; // using memoization
}
else
{
value[ n ] = fib( n - 2 , value ) fib ( n -
1 , value ); // computing the fibonacci term
}
return value[ n ]; // returning the value
}
|
���˱���ϵļ�����,ϊ���ϵͳ������ч��,����ͨ��ҳ��ҫ�����ܵ����ø���ӳ���豸�������ص�����с����ת����,�����с�жθ���,����dma���䷽ʽ��.
����ƕ��ʽϵͳ,�������ڿ����ٶ�,�����ɿ����լ����������ȷ��涼�������ե�����.��ȼ�����ż��ķ������кܶ�,����ֻ��д����һ����,ϣ����ϊ������ա�ṩһщ����,ҳ��ӭ������խ���.
ԭ�ģ�https://blog.csdn.net/u013467442/article/details/47071171
|