pythonµÄC¡¢c++À©Õ¹
pythonµÄC¡¢c++À©Õ¹
http://blog.chinaunix.net/u3/110228/showart_2148725.html
pythonµÄÇ¿´ó²»½ö±íÏÖÔÚÆä¹¦ÄÜÉÏ£¬¶øÇÒ»¹±íÏÖÔÚÆäÀ©Õ¹ÄÜÁ¦ÉÏ¡£
ʹÓÃC/C++ºÜÈÝÒ×±àдpythonµÄÄ£¿é£¬À©Õ¹pythonµÄ¹¦ÄÜ¡£
ͬʱ½«ÐÔÄÜÒªÇó±È½Ï¸ßµÄ´úÂëʹÓÃC/C++±àд£¬ÄܸüºÃµÄÃÖ²¹
½Å±¾ÓïÑÔÖ´ÐÐËÙ¶ÈÂýµÄȱÏÝ¡£
1. pythonµÄCÓïÑÔÀ©Õ¹
1.1 TestCLib.c: ÌṩpythonµÄÄ£¿é½Ó¿Ú
#include "Python.h"
#include <stdlib.h>
#include <stdio.h>
long fac(long);
// ------------------------------------------------------
// Make C code usable in Python
// ------------------------------------------------------
PyObject* TestCLib_fac(PyObject * self, PyObject *args)
{
long num;
if ( ! PyArg_ParseTuple(args,"l",&num)){
return NULL;
}
return (PyObject*)Py_BuildValue("l",fac(num));
}
static PyMethodDef TestCLibMethods[] = {
{"fac",TestCLib_fac,METH_VARARGS},
{NULL,NULL}
};
void initTestCLib()
{
Py_InitModule("TestCLib",TestCLibMethods);
}
1.2 test.c: ¾ßÌåµÄCÓïÑÔʵÏÖ
#include <stdlib.h>
#include <stdio.h>
// ------------------------------------------------------
// Pure C code
// ------------------------------------------------------
long fac(long n)
{
if ( n < 0){
return fac(-n);
} else if ( n < 2 ){
return 1;
} else {
return n * fac(n-1);
}
}
1.3 test.py: ²âÊԽű¾
#!/usr/bin/env python
import TestCLib as TestLib
for i in range(10,20) :
f1 = TestLib.fac(i)
print "%d! = %d"%(i,f1)
1.4 ±àÒëÓëÔËÐÐ
±àÒëÃüÁ
gcc -fPIC -shared -o TestCLib.so TestCLib.c test.c -I /usr/local/python/include/python2.6/
½«Éú³ÉµÄ¶¯Ì¬Á´½Ó¿â T
Ïà¹ØÎĵµ£º
Ò»¸ö¿ØÖÆÌ¨ÏµÄÊý×Ö±í´ïʽÇóÖµ³ÌÐò (c/c++)
Ô´´úÂë¼ûÏ£º
#include <stdio.h>
#include <string>
#include <iostream>
#include <stdlib.h>
#include <vector>
#include <stack>
using namespace std;
//ÉèÖÃÔËËã·ûÓÅÏȼ¶µÄËã·¨
int Priority(const string opera) // ÔËËã·û ......
ÕâÊÇÒ»¸öÓÃJAVA W3C DOM ½øÐÐXML²Ù×÷µÄÀý×Ó£¬°üº¬Á˲éѯ¡¢Ôö¼Ó¡¢Ð޸ġ¢É¾³ý¡¢±£´æµÄ»ù±¾²Ù×÷¡£½ÏÍêÕûµÄÃèÊöÁËÒ»¸öXMLµÄÕû¸ö²Ù×÷Á÷³Ì¡£ÊʺϸÕÈëÃÅJAVA XML²Ù×÷µÄÅóÓѲο¼ºÍѧϰ¡£
¼ÙÉèÓÐXMLÎļþ£ºtest1.xml
<?xml version="1.0" encoding="UTF-8"?>
<books>
<book>
<name>¹þÀï²¨Ì ......
1 ±à³Ì»ù´¡
1.1 »ù±¾¸ÅÄî
1. µÄÀí½â£ºconst char*, char const*, char*constµÄÇø±ðÎÊÌ⼸ºõÊÇC++ÃæÊÔÖÐÿ´Î ¶¼»áÓеÄÌâÄ¿¡£ ÊÂʵÉÏÕâ¸ö¸ÅÄî˶¼ÓÐÖ»ÊÇÈýÖÖÉùÃ÷·½Ê½·Ç³£ÏàËÆºÜÈÝÒ׼ǻ졣 Bja ......
1/ÓÐ1¡¢2¡¢3¡¢4¸öÊý×Ö£¬ÄÜ×é³É¶àÉÙ¸ö»¥²»ÏàͬÇÒÎÞÖØ¸´Êý×ÖµÄÈýλÊý£¿¶¼ÊǶàÉÙ£¿
==============================================================
2/ÆóÒµ·¢·ÅµÄ½±½ð¸ù¾ÝÀûÈóÌá³É¡£ÀûÈó(I)µÍÓÚ»òµÈÓÚ10ÍòԪʱ£¬½±½ð¿ÉÌá10%£»ÀûÈó¸ß
¡¡¡¡¡¡ÓÚ10ÍòÔª£¬µÍÓÚ20ÍòԪʱ£¬µÍÓÚ10ÍòÔªµÄ²¿·Ö°´10%Ìá³É£¬¸ßÓÚ10ÍòÔªµÄ²¿·Ö£¬¿É¿ÉÌá
......
ǰ¼¸Ì죬СÐí¸øÎÒÒ»·ÝJavaQQµÄÔ´´úÂ룬ÓÃvim´ò¿ªÒ»¿´£¬·¢ÏÖÀïÃæµÄÖÐÎͼÊÇÂÒÂë¡£²»ÓÃ˵£¬ÓÖÊǿɶñµÄ±àÂëÎÊÌ⣬ÔÚwindowϵÄÎı¾Îļþͨ³£Ê¹ÓÃGBK»òGB18030±àÂ룬¶øÔÚLinuxÏÂutf-8±àÂëÔò´óÐÐÆäµÀ¡£´ò¿ª——Áí´æÎª¿Ï¶¨²»ÊÇÉϲߣ¬ÉÏÍøÕÒ±àÂëÅúÁ¿×ª»»¹¤¾ßÒ²²»ÊÇÔÛÇÚÀÍÓ¸ҵijÌÐòÔ±µÄ×÷·ç¡£×ÔÒѶ¯ÊÖ ......