❶ 学会了c语言都可以做什么呢
C语言是一门通用性的语言,并没有针对某个领域进行优化,在实际项目中,C语言主要用于较底层的开发,例如:
Windows、Linux、Unix 等操作系统的内核90%以上都使用C语言开发;
开发硬件驱动,让硬件和操作系统连接起来,这样用户才能使用硬件、程序员才能控制硬件;
单片机和嵌入式属于软硬件的结合,有很多使用C语言的地方;
开发系统组件或服务,用于支撑上层应用;
编写PHP扩展,增强PHP的功能;
如果对软件某个模块(例如算法和搜索部分)的效率要求较高,也可以使用C语言来开发。
❷ php怎样和c语言混合编程
php是一个脚本语言,如果需要系统调用,需要用C语言编写一个扩展来实现,另外C是静态编译的,执行效率比PHP代码高很多。同样的运算代码,使用C来开发,性能会比PHP要提升数百倍。编写好的php扩展要在编译php源码时加进去。
❸ 如何看待C语言开发PHP框架
用C开发的框架目前还是比较少的,比较突出的就是由laurence开发的YAF,以及Phalcon,不少技术员会 CIT已经介绍了不少的开发框架,CodeIgniter、ZendFramework、CakePHP、FuelPHP、Phalcon,其中有的采用PHP语言开发,有的则是采用C语言编写完成。 用C开发的框架目前还是比较少的,比较突出的就是由laurence开发的YAF,以及Phalcon,不少技术员会问,C语言开发的PHP框架会成为一种趋势么,本篇就来简单的分析介绍下。 为何使用框架 使用框架主要是在团队协作开发过程中统一开发规范、程序设计模式,遵循开发框架的各种约定,无论在编码还是以后的维护过程中都是易于管理的。另外就是框架会集成丰富的类库、函数库,也避免你的重复劳动,可以“随地取材”,提升开发的效率。 作为新人,我们是不提倡学习框架的,尽量还是从PHP本身先学起,例如很多框架中都提供了ORM、CURD这类东西,但刚刚接触PHP的同学连PHP+MySQL都没有搞太清楚,直接选择框架式不可取的。 另外一些简单的应用也不必选择框架,例如一些小的工具或者功能,本身编写就不是很复杂,选择一套框架反而让你的程序变得臃肿。 个人开发的时候也是根据情况而定,如果一些程序员本身就有一套开发思路,也无需选择框架,毕竟要熟悉框架也是需要时间成本的。 综上所述,我们得知选择框架是有范围的,只有合适的时候才需要去选择开发框架。 易配置、易部署; 库、函数; 文档; 丰富的应用; 成熟的社区; 性能; 不同层次的技术员选择框架所看重的点也是不一样的,如果是初学者,主要是看重1、3、5,中级的技术员则看重2、4,如果是高级别的技术员会更加看重6,所以不同阶段会选择不同的开发框架。当然,成熟的开发框架应该能够包罗方方面面,但能够做到这些是不可能的。 C语言框架是趋势么? 我想随着Ruby on Rails这些的发展,让很多web工作者感受到了快乐,PHP中集成开发框架也不是不可能的事情,这不是YAF、Phalcon已经在做这些事情了么,但C语言的开发框架能做的事情是有限的,它可能会作为开发模式的一种规范,但绝不会是框架的全部,因为如果整个框架纯采用C语言,那就不能很好的利用PHP社区。
❹ 如何用C语言编写PHP扩展的详解
1:预定义
在home目录,也可以其他任意目录,写一个文件,例如caleng_mole.def
内容是你希望定义的函数名以及参数:
int a(int x,int y)
string b(string str,int n)
2:到php源码目录的ext目录
#cd /usr/local/php-5.4.0/ext/
执行命令,生成对应扩展目录
#./ext_skel --extname=caleng_mole --proto=/home/hm/caleng_mole.def
3:修改config.m4
去掉dnl的注释
PHP_ARG_ENABLE(caleng_mole, whether to enable caleng_mole support,
Make sure that the comment is aligned:
[ --enable-caleng_mole Enable caleng_mole support])
4:修改caleng_mole.c
代码如下:
/* {{{ proto int a(int x, int y)
*/
PHP_FUNCTION(a)
{
int argc = ZEND_NUM_ARGS();
int x;
int y;
int z;
if (zend_parse_parameters(argc TSRMLS_CC, "ll", &x, &y) == FAILURE)
return;
z=x+y;
RETURN_LONG(z);
}
/* }}} */
/* {{{ proto string b(string str, int n)
*/
PHP_FUNCTION(b)
{
char *str = NULL;
int argc = ZEND_NUM_ARGS();
int str_len;
long n;
char *result;
char *ptr;
int result_length;
if (zend_parse_parameters(argc TSRMLS_CC, "sl", &str, &str_len, &n) == FAILURE)
return;
result_length = str_len * n;
result = (char *) emalloc(result_length + 1);
ptr = result;
while (n--) {
memcpy(ptr, str, str_len);
ptr += str_len;
}
*ptr = '