TIOBE世界编程语言排行榜展现了编程语言的流行趋势。每个月,都有最新的数据被更新。这份排行榜的数据取样来源于互联网上富有经验的程序员、商 业应用、著名的搜索引擎(诸如谷歌、 MSN 、雅虎)的关键字排名、 Alexa 上的排名等。请注意这个排行榜只是反映了某个编程语言的热门程度 , 这并不代表它是一个最好的编程语言或是可以写出某些令人称赞的好程序。 TIOBE公布了最新的语言排行榜.PHP果然不失所望.超过了C++.排在了前三的位置.
(Java和C稳居榜首,Java依然是最热门的编程)
位居前十位的编程语言曲线变化图
......
TIOBE世界编程语言排行榜展现了编程语言的流行趋势。每个月,都有最新的数据被更新。这份排行榜的数据取样来源于互联网上富有经验的程序员、商 业应用、著名的搜索引擎(诸如谷歌、 MSN 、雅虎)的关键字排名、 Alexa 上的排名等。请注意这个排行榜只是反映了某个编程语言的热门程度 , 这并不代表它是一个最好的编程语言或是可以写出某些令人称赞的好程序。 TIOBE公布了最新的语言排行榜.PHP果然不失所望.超过了C++.排在了前三的位置.
(Java和C稳居榜首,Java依然是最热门的编程)
位居前十位的编程语言曲线变化图
......
现在很多人都问 C++和Java 哪个好. 其实技术上各有各的好处与不足,我想大家所说的好不好指得是前途好不好,赚的多不多.
要说赚钱最多的肯定是C++了.因为一门技术是否值钱全看会它的人有多少而不在于这个技术本身的好坏. C++涉及硬件底层的东西比较多,学起来很复杂,会的人少,所以值钱.
再说Java java赚的钱也不差,但是java做出来的东西性能肯定是没有C++好,不过现在CPU 内存已经不像从前了,这性能问题已经不重要了. 其实C++和java的区别不只在性能上,不过我水平不行,说不出来. java和C++比起来是好学多了.
咱们学这些是为了什么?为了工作, 工作为了什么,最重要的是为了生活. 很多人现在都在说哪个语言厉害,会哪个语言才是真正的NB程序员. 其实做学术上的讨论还可以, 别忘了程序员是青春饭,年纪稍微大点就做不动了.做不到领导就需要转行,而领导就不需要精通技术了. 所以无论哪种语言只要能找到工作的就可以!
我向楼主推荐Java, 理由是Java好学,应用面广,学习周期比C++短.便于你找工作. 有的人也说Java会过时什么的,你也不用担心,就算Java真的过时了,那时 ......
现在很多人都问 C++和Java 哪个好. 其实技术上各有各的好处与不足,我想大家所说的好不好指得是前途好不好,赚的多不多.
要说赚钱最多的肯定是C++了.因为一门技术是否值钱全看会它的人有多少而不在于这个技术本身的好坏. C++涉及硬件底层的东西比较多,学起来很复杂,会的人少,所以值钱.
再说Java java赚的钱也不差,但是java做出来的东西性能肯定是没有C++好,不过现在CPU 内存已经不像从前了,这性能问题已经不重要了. 其实C++和java的区别不只在性能上,不过我水平不行,说不出来. java和C++比起来是好学多了.
咱们学这些是为了什么?为了工作, 工作为了什么,最重要的是为了生活. 很多人现在都在说哪个语言厉害,会哪个语言才是真正的NB程序员. 其实做学术上的讨论还可以, 别忘了程序员是青春饭,年纪稍微大点就做不动了.做不到领导就需要转行,而领导就不需要精通技术了. 所以无论哪种语言只要能找到工作的就可以!
我向楼主推荐Java, 理由是Java好学,应用面广,学习周期比C++短.便于你找工作. 有的人也说Java会过时什么的,你也不用担心,就算Java真的过时了,那时 ......
为了实现两个数字进行交换,我们通常可以利用位运算来实现
C++程序 swap(int a ,int b){a^=b^=a^=b;}
JAVA程序 swap(int a, int b){ a^=b;b^=a;a^=b; }或者{ b^=(a^=b) ; a^=b;}
如果JAVA用C++的实现方式则会得到 b得到了a的值,但是a现在的值却不是原来b的值。
这个是因为在C++是编译性语言,JAVA是解释性语言。
在进行处理的时候C++的数是边运算边刷新,保证了中间a ,b的值实时更新,
而JAVA是一次性在我们的表达式中填入了我们原来的值,在中间的运算过程中不能保证本应该改变的数值没有改变,
形成了脏数据。在我们下次要用到a,b的值的时候才进行刷新,但是这个时候已经是脏数据,因此得到的值是错误的。 ......
为了实现两个数字进行交换,我们通常可以利用位运算来实现
C++程序 swap(int a ,int b){a^=b^=a^=b;}
JAVA程序 swap(int a, int b){ a^=b;b^=a;a^=b; }或者{ b^=(a^=b) ; a^=b;}
如果JAVA用C++的实现方式则会得到 b得到了a的值,但是a现在的值却不是原来b的值。
这个是因为在C++是编译性语言,JAVA是解释性语言。
在进行处理的时候C++的数是边运算边刷新,保证了中间a ,b的值实时更新,
而JAVA是一次性在我们的表达式中填入了我们原来的值,在中间的运算过程中不能保证本应该改变的数值没有改变,
形成了脏数据。在我们下次要用到a,b的值的时候才进行刷新,但是这个时候已经是脏数据,因此得到的值是错误的。 ......
#include <stdio.h>
#include <windows.h>
#include <mysql.h>
#define host "localhost"
#define username "root"
#define password "123"
#define database "oa"
MYSQL *conn;
int main()
{
MYSQL_RES *res_set;
MYSQL_ROW row;
unsigned int i,ret;
FILE *fp;
MYSQL_FIELD *field;
unsigned int num_fields;
conn = mysql_init(NULL);
ret = mysql_options(conn, MYSQL_SET_CHARSET_NAME, "gbk");
mysql_real_connect(conn,host,username,password,database,0,NULL,0);
fp = fopen ( "t_sys_power.out","w");
fprintf(fp,"char set %s\n", mysql_character_set_name(conn));
mysql_query(conn,"SELECT * from t_sys_power ");//WHERE a1='abc'");
res_set = mysql_store_result(conn);
while((field = mysql_fetch_field(res_set)))
{
printf("field name %s\n", field->name);
}
num_fields = mysql_num_fields(res_set);
for(i = 0; i < num_fields; i++)
{
field = mysql_fetch_field_direct(res_set, i);
printf("Field %u is %s\n", i ......
#include <stdio.h>
#include <windows.h>
#include <mysql.h>
#define host "localhost"
#define username "root"
#define password "123"
#define database "oa"
MYSQL *conn;
int main()
{
MYSQL_RES *res_set;
MYSQL_ROW row;
unsigned int i,ret;
FILE *fp;
MYSQL_FIELD *field;
unsigned int num_fields;
conn = mysql_init(NULL);
ret = mysql_options(conn, MYSQL_SET_CHARSET_NAME, "gbk");
mysql_real_connect(conn,host,username,password,database,0,NULL,0);
fp = fopen ( "t_sys_power.out","w");
fprintf(fp,"char set %s\n", mysql_character_set_name(conn));
mysql_query(conn,"SELECT * from t_sys_power ");//WHERE a1='abc'");
res_set = mysql_store_result(conn);
while((field = mysql_fetch_field(res_set)))
{
printf("field name %s\n", field->name);
}
num_fields = mysql_num_fields(res_set);
for(i = 0; i < num_fields; i++)
{
field = mysql_fetch_field_direct(res_set, i);
printf("Field %u is %s\n", i ......
VB
If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
MSComm1.CommPort = i1
MSComm1.PortOpen = True
MSComm1.InputMode = comInputModeBinary
MSComm1.InBufferCount = 0
MSComm1.InputLen = 0
MSComm1.Settings = "9600,N,8,1"
MSComm1.RThreshold = 1
MSComm1.OutBufferCount = 0
C++
/****************************************************************/
//串行口初始化
if(m_ctrlComm.GetPortOpen()) //如果串口已经打开,则关闭。
m_ctrlComm.SetPortOpen(FALSE);
m_ctrlComm.SetCommPort(1); //选择com1
if( !m_ctrlComm.GetPortOpen()) 字串9
m_ctrlComm.SetPortOpen(TRUE); //打开串口
else
AfxMessageBox("不能打开串行口!");
m_ctrlComm.SetSettings("9600,n,8,1"); //波特率9600,无校验,8个数据位,1个 ......
VB
If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
MSComm1.CommPort = i1
MSComm1.PortOpen = True
MSComm1.InputMode = comInputModeBinary
MSComm1.InBufferCount = 0
MSComm1.InputLen = 0
MSComm1.Settings = "9600,N,8,1"
MSComm1.RThreshold = 1
MSComm1.OutBufferCount = 0
C++
/****************************************************************/
//串行口初始化
if(m_ctrlComm.GetPortOpen()) //如果串口已经打开,则关闭。
m_ctrlComm.SetPortOpen(FALSE);
m_ctrlComm.SetCommPort(1); //选择com1
if( !m_ctrlComm.GetPortOpen()) 字串9
m_ctrlComm.SetPortOpen(TRUE); //打开串口
else
AfxMessageBox("不能打开串行口!");
m_ctrlComm.SetSettings("9600,n,8,1"); //波特率9600,无校验,8个数据位,1个 ......
VB
If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
MSComm1.CommPort = i1
MSComm1.PortOpen = True
MSComm1.InputMode = comInputModeBinary
MSComm1.InBufferCount = 0
MSComm1.InputLen = 0
MSComm1.Settings = "9600,N,8,1"
MSComm1.RThreshold = 1
MSComm1.OutBufferCount = 0
C++
/****************************************************************/
//串行口初始化
if(m_ctrlComm.GetPortOpen()) //如果串口已经打开,则关闭。
m_ctrlComm.SetPortOpen(FALSE);
m_ctrlComm.SetCommPort(1); //选择com1
if( !m_ctrlComm.GetPortOpen()) 字串9
m_ctrlComm.SetPortOpen(TRUE); //打开串口
else
AfxMessageBox("不能打开串行口!");
m_ctrlComm.SetSettings("9600,n,8,1"); //波特率9600,无校验,8个数据位,1个 ......
VB
If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
MSComm1.CommPort = i1
MSComm1.PortOpen = True
MSComm1.InputMode = comInputModeBinary
MSComm1.InBufferCount = 0
MSComm1.InputLen = 0
MSComm1.Settings = "9600,N,8,1"
MSComm1.RThreshold = 1
MSComm1.OutBufferCount = 0
C++
/****************************************************************/
//串行口初始化
if(m_ctrlComm.GetPortOpen()) //如果串口已经打开,则关闭。
m_ctrlComm.SetPortOpen(FALSE);
m_ctrlComm.SetCommPort(1); //选择com1
if( !m_ctrlComm.GetPortOpen()) 字串9
m_ctrlComm.SetPortOpen(TRUE); //打开串口
else
AfxMessageBox("不能打开串行口!");
m_ctrlComm.SetSettings("9600,n,8,1"); //波特率9600,无校验,8个数据位,1个 ......
继前篇《Import Module》(http://blog.csdn.net/xiadasong007/archive/2009/09/02/4512797.aspx),继续分析嵌入部分基础知识。这次不多说,有什么问题记得多查英文资料,国内的这方面知识少
还是来看代码,写完我就睡觉了~
#include "python/python.h"
#include <iostream>
using namespace std;
int main(int argc,char** argv)
{
PyObject *pModule, *pClass,*pStuObj,*pFunc;
Py_Initialize();
////////////////
//载入模块stu.py
pModule = PyImport_ImportModule ("stu");
//从模块中得到类Student
pClass = PyObject_GetAttrString (pModule, "Student");
//生成一个学生对象jack,注意3.1版本必须加上小括号:(s),否则会出错
//PyObject_CallObject和另外一个常用的PyEval_CallObject用法极为相近,请看附录部分详解
PyObject * temp=Py_BuildValue("(s)","jack");
pStuObj = PyObject_CallObject(pClass, temp);
//获得函数对象jack中的成员函数printName,
//这个getattr的意思就是得到当前对象的属性(不要局限于 ......
继前篇《Import Module》(http://blog.csdn.net/xiadasong007/archive/2009/09/02/4512797.aspx),继续分析嵌入部分基础知识。这次不多说,有什么问题记得多查英文资料,国内的这方面知识少
还是来看代码,写完我就睡觉了~
#include "python/python.h"
#include <iostream>
using namespace std;
int main(int argc,char** argv)
{
PyObject *pModule, *pClass,*pStuObj,*pFunc;
Py_Initialize();
////////////////
//载入模块stu.py
pModule = PyImport_ImportModule ("stu");
//从模块中得到类Student
pClass = PyObject_GetAttrString (pModule, "Student");
//生成一个学生对象jack,注意3.1版本必须加上小括号:(s),否则会出错
//PyObject_CallObject和另外一个常用的PyEval_CallObject用法极为相近,请看附录部分详解
PyObject * temp=Py_BuildValue("(s)","jack");
pStuObj = PyObject_CallObject(pClass, temp);
//获得函数对象jack中的成员函数printName,
//这个getattr的意思就是得到当前对象的属性(不要局限于 ......