寫給C語言初學者的話(ZT)

寫給C語言初學者的話 --www.chinaunix.net(ldap) 前些天我寫了一篇“Unix C語言值得注意的地方”一貼,回貼中談到學習國外的開源軟體中的高品質代碼的問題,但是有朋友跟我說,在看代碼的過程中感覺難度很大,想想也是如此,動輒十幾萬行的程式如果沒有人指點的話是很難找到切入點的,所以我撰寫了此文希望能對廣大C語言愛好者有所協助,在文章中有很多煽情的地方還請大家原諒,因為這篇文章使我想到了剛剛畢業的時候,所以有點感慨。同時文章中還有一些個人偏見存在,希望持反方向意見的人多多包涵,

C語言的多態性,你的多態你做主

在Linux的核心代碼中,多處都用到物件導向的設計理念,比如,在檔案系統系統的設計中,有四個主要的對象:超級塊,索引節點,目錄項和檔案。在每個對象定義的結構體,都有一個指向指向對象操作的結構體,在這個結構體中的所有欄位都是指向函數的指標,例如file結構中的縮減定義: struct file {  struct file_operations  *f_op;     /*指向檔案動作表的指標*/  mode_t f_mode;                     /*檔案的開啟模式*/ 

C#寄送電子郵件 (同步)

/// <summary> /// 同步寄送電子郵件 /// </summary> /// <param name="fromEmail">發送方電子郵件</param> /// <param name="fromPwd">發送方電子郵件密碼</param> /// <param

C#寄送電子郵件 (非同步)

///驗證電子郵件的Regexstring emailStr = @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$";/// <summary> /// 非同步寄送電子郵件 /// </summary> /// <param

C#之鍵盤鉤子

public class Win32API//API函式宣告 { public const int WH_KEYBOARD_LL = 13; public delegate int HookProcHandler(int nCode, int wParam, IntPtr lParam); [DllImport("user32.dll")] // 安裝鉤子 public static extern IntPtr

C#之擷取公網IP

static string GetPublicIpAdress() { string uri ="http://city.ip138.com/city0.asp"; WebRequest req = WebRequest.Create(uri); WebResponse res = req.GetResponse(); Stream sm = res.GetResponseStream();

C#時鐘控制項

多年前寫的時鐘控制項,發布出來,供大家參考。先看效果:首先,製作一個從UserControl繼承的時鐘控制項,使用雙緩衝繪製。由於是幾年前的水平,一些代碼寫到了屬性中,也懶得再改了,感興趣的,可以改得更規範些。//ClockControl.csusing System;using System.Drawing;using System.Drawing.Drawing2D;using System.Windows.Forms;namespace

c#多線程socket開發

            話說“主機已經強制性關閉一個連結”這個問題一直拖延了很久,現在解決了,貼出來希望能購有所參考 using System;using System.Collections;using System.Collections.Specialized;using System.Text;using System.Threading;using System.Net.Sockets;using System.Net;using

c#與javascript互訪

document.getElementById('GlobalAreaUserControl1_ddlContinent').options.selectedIndex==0C#代碼與javaScript函數的相互調用問:1.如何在JavaScript訪問C#函數?2.如何在JavaScript訪問C#變數?3.如何在C#中訪問JavaScript的已有變數?4.如何在C#中訪問JavaScript函數?問題1答案如下:javaScript函數中執行C#代碼中的函數:方法一:1、首先建立一個按鈕

[C#]Message

 using System;using System.Collections.Generic;using System.Text;using System.Web;using System.Web.UI;/// <summary>/// 一些常用的Js調用/// 添加新版說明:由於舊版普遍採用Response.Write(string msg)的方式輸出js指令碼,這種///

[WINFORM]C#中的DataGridView

關鍵字:C# DataGridView作者:peterzb來源:http://www.cnblogs.com/peterzb 1.DataGridView實現課程表 testcontrol.rar2.DataGridView二維表頭及儲存格合并 DataGridView儲存格合并和二維表頭.rar myMultiColHeaderDgv.rar3.DataGridView儲存格顯示GIF圖片

C# 參數關鍵字ref

ref 關鍵字使方法按引用傳遞,其效果是,當控制權傳遞給調用方法時,在方法中對參數所做的任何修改都會反映在改變數中。樣本如下:int i =10;// 查看調用方法之前的值Console.WriteLine("Before the method calling : i={0}",i);UseRef(ref i);// 查看調用方法後的值Console.WriteLine("After the method calling : i={0}",

C#寫自己的的集合

 (1)除了ArrayList, List,.NET還提供了Queue隊列,Stack堆棧,HashSet散列表,Dictionary字典,Tuple多元組,數組,Collection集合,等多種內建資料結構。基本上總有一種適合你。(2)C#允許你用3種方式擴充這些類,滿足你的特殊需要- a) 從這些類繼承一個類,實現你的擴充或者覆蓋掉某些方法- b) 使用擴充方法,你可以給這些類增加方法成員- c) 實現 IList ICollection

透過IL看C#

 透過IL看C#開篇原文地址:http://www.cnblogs.com/AndersLiu/archive/2008/11/03/csharp-via-il.html作者:Anders

C#對Dictionary的按Value排序

 使用List對其進行排序using System;using System.Collections.Generic;using System.Text;namespace ConsoleApplication4{    class Program    {        static void Main(string[] args)        {            Dictionary<string, string> dic = new

C++ 書單

 一些同學問我,如何學好C++,我沒有別的辦法給你們,唯一的辦法就是讀書,讀大量的書,就可以解決。要把C++作為日常語言,而不是一種程式語言,這樣就好辦了。 有人又要問我,那麼我應該讀什麼書才好?沒有時間怎麼辦? 我只能對你們說,沒時間的話,就別學C++了,做你們喜歡做的事。生活中沒有C++,也同樣美好。 如果你準備學,一定要學好,那麼我開個書單,應該問題不是甚大。 首先肯定要讀一讀Bjarne Stroustrup的The Design and Evolution of

學習C++的可以看看

 1. 把C++當成一門新的語言學習(和C沒啥關係!真的。);是的,我們仍然應該抱著這樣一種心態來學習C++。前一段時間,C/C++User’s Journal 上面有一連串關於C與C++關係的文章,Bjarne Stroustrup、Herb

檢查隨機序列重複[C++]

/*  * File:   Main.cpp * Author: 88250 <DL88250@gmail.com>, http://blog.csdn.net/DL88250 * * Created on May 13, 2008, 6:25 PM */#include <iostream>#include <fstream>#include <algorithm>#include <vector>#include <time.

C語言實現排列/組合演算法

/* *  檔案名稱:Permutation.c*  用途:全排列演算法*  編程環境:WinXP SP2+CL 8.0*  完成日期: 2006.2   Ver 0.01*  作者: 88250*  連絡方式: E-mail: DL88250@gmail.com  QQ:845765*/#include <stdio.h>#include <stdlib.h>int count = 0;void permutation(char per[], int m, int le

C實現緩衝區溢位

/* *  檔案名稱:SimpleBufferOverflow.c*  用途:緩衝區溢位實驗*  編程環境:WinXP SP2+CL 8.0*  完成日期: 2006.4   Ver 0.01*  作者: 88250*  連絡方式: E-mail: DL88250@gmail.com  QQ:845765*/#include <stdio.h> #include <string.h> #include <windows.h> char largebuff[51

總頁數: 4314 1 .... 2779 2780 2781 2782 2783 .... 4314 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.