Python µÄCÓïÑÔÀ©Õ¹
²Ù×÷ϵͳ£ºlinux debian 4.0£¬ python°æ±¾2.5
s1:°²×°python2.5-dev¡£ÒòΪPython.hÊÇÔÚdev°üÖвÅÓС£
test@debian:~/test_python_c$ aptitude search python2.5-dev
p python2.5-dev - Header files and a static library for Python.
test@debian:~/test_python_c$ sudo aptitude install python2.5-dev
...
test@debian:~/test_python_c$ aptitude search python2.5-dev
i python2.5-dev - Header files and a static library for Python.
s2:×¼±¸²âÊÔÎļþ——CÓïÑÔº¯Êý
//filename:example.c
int fact(int n)
{
if(n<=1)
return 1;
else
return n*fact(n-1);
}
s3: ±àд·â×°½Ó¿Ú
//filename: wrap.c
#include <Python.h>
PyObject* wrap_fact(PyObject* self, PyObject* args)
{
int n, result;
if (! PyArg_ParseTuple(args, "i:fact", &n))
return NULL;
result = fact(n);
return Py_BuildValue("i", result);
}
static PyMethodDef exampleMethods[] =
{
{"fact", wrap_fact, METH_VARARGS, "Caculate N!"},
{NULL, NULL}
};
void initexample()
{
PyObject* m;
m = Py_InitModule("example", exampleMethods);
}
s4:±àÒëÁ¬½Ó
gcc -fpic -c -I /usr/include/python2.5 -I /usr/lib/python2.5/config example.c wrap.c
gcc -shared -o example.so example.o wrap.o
test@debian:~/test_python_c$ ls
example.c example.o example.so wrap.c wrap.o
s5:²âÊÔexampleÀ©Õ¹Ä£¿é
test@debian:~/test_python_c$ python
Python 2.5 (release25-maint, Jul 20 2008, 20:47:25)
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import example
>>> dir(example)
['__doc__', '__file__', '__name__', 'fact']
>>> example.fact(5)
120
>>> example.fact(16)
2004189184
>>> example.fact(17)
-288522240
˵Ã÷fact(17)µÄʱºòÒç³öÁË¡£
²Ù×÷ϵͳ£ºwindowsXP£¬ python°æ±¾2.5
#TODO:
Ïà¹ØÎĵµ£º
ǰÁ½ÌìÔÚÍøÉÏ¿´µ½¡¶Cר¼Ò±à³Ì¡·Õâ±¾ÊéµÄÆÀ¼Û»¹²»´í£¬¾ÍÈ¥ÊéµêÂòÁËÒ»±¾»ØÀ´Åõ¶Á£¬Ã¿ÌìÍíÉÏ¿´Ò»Ð©¡£Ì½ÌÖµÄÎÊÌâȷʵ±È½ÏÉ¶¼ÔÚÌÖÂÛCÓïÑÔ±¾ÉíµÄÎÊÌâÁË¡£Ìáµ½ÁËCÓïÑÔÖеÄһЩ²»×ã¡£±¾À´ÈÏΪCÓïÑÔÊÇÎÞи¿É»÷µÄ£¬¿É´Ó×÷ÕߵĽǶȿ´À´£¬È·ÊµÓÐЩ²»Í׵ĵط½£¬ÏëÏëÒ²ÊÇ£¬ÄÄÓÐÍêÃÀÎÞȱ¶«Î÷ÄØ¡£Æäʵ×÷ÕßÒ²²¢·ÇÔڱᵠ......
C³ÌÐòÊÇÓÉÒ»×é»òÊDZäÁ¿»òÊǺ¯ÊýµÄÍⲿ¶ÔÏó×é³ÉµÄ¡£ º¯ÊýÊÇÒ»¸ö×ÔÎÒ°üº¬µÄÍê³ÉÒ»¶¨Ïà¹Ø¹¦ÄܵÄÖ´ÐдúÂë¶Î¡£ÏÂÃæÐ¡±àºÍ´ó¼Ò·ÖÏíÏÂCÓïÑÔÖеĺ¯Êý¡£
1. qsortº¯Êý
qsortº¯ÊýµÄ¹¦ÄÜÊÇʹÓÿìËÙÅÅÐòÀý³Ì½øÐÐÅÅÐò£¬ÆäÓ÷¨Îª£ºvoid qsort(void *base, int nelem, int width, int (*fcmp)());³Ì ......
Óú¯Êýaccess£¬Í·ÎļþÊÇio.h£¬ÔÐÍ£º
int access(const char *filename, int amode);
amode²ÎÊýΪ0ʱ±íʾ¼ì²éÎļþµÄ´æÔÚÐÔ£¬Èç¹ûÎļþ´æÔÚ£¬·µ»Ø0£¬²»´æÔÚ£¬·µ»Ø-1¡£
Õâ¸öº¯Êý»¹¿ÉÒÔ¼ì²éÆäËüÎļþÊôÐÔ£º
06 &nbs ......
¸Õ¸Õ¿´¹ýÕâÆª¡¶30 years of C¡·£¬»ØÏëÁËÕ⼸ÄêµÄѧϰÀú³Ì¡£
ÔÚ´óѧÀÎÒѧϰµÄµÚÒ»ÃųÌÐòÉè¼ÆÓïÑÔÊÇC£¬µ«»¨Ê±¼ä×î¶àµÄ»¹ÊÇC++¡£´óÔ¼ÎåÄêǰ£¬¿ªÊ¼¿Ð¡¶ C++±à³Ì˼Ïë¡·Á½¾í±¾£¬ÓÃDev-cppÔÚ»úÆ÷Á·Ï°×ÅÊéÉϵÄÒ»¸ö¸öÀý×Ó³ÌÐò£¬Ö®ºóÓÖѧϰÁËÃæÏò¶ÔÏó±à³Ì¡¢STL¡¢Ä£°å¡£Æ¾×Å ......
Õâ¸öËãÊÇC++ǶÈëpython°É£¬ÀûÓÃpythonʵÏÖÏÔʾºÍʼþ´¦Àí£¬C++ʵÏÖÂß¼
ÒÔºóÓÐʱ¼äÒ²»á·´¹ýÀ´ÊÔÊÔ£º£©
import pygame
import sys
import os
import ctypes
def cur_file_dir():
#»ñÈ¡½Å±¾Â·¾¶
path = sys.path[0]
#ÅжÏΪ½Å±¾Îļþ»¹ÊÇpy2exe±àÒëºóµÄÎļþ£¬Èç¹ûÊǽű¾Îļþ£¬Ôò·µ»ØµÄÊǽű¾µÄĿ ......